2009-10-24 4 views
1
  1. Je souhaite exécuter un fichier jar à partir de l'application C# .net. Le fichier jar est une application console. Le fichier jar est présent dans le même répertoire que l'application C#. 2. Je veux vérifier si jdk est installé frm dans C# .net applcation Comment puis-je faire cela?

Répondre

0
  • Utilisation Process pour démarrer java arguments de passage de processus -jar yourjar.jar. Les JDK sont généralement installés en c:\Program Files\Java\jdk.... Vérifiez si ce dossier existe, il devrait s'adapter à la plupart des cas. Ou vérifiez HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit dans le registre.

1

Avoir un fichier de commandes qui contient tout ce dont vous avez besoin pour démarrer votre application Java.

E.g. "Javaw -classpath chemin de jarre"

System.Diagnostics.Process.Start("batchfile"); 

Plus here

Pour la question 2, la suggestion de elder_george devrait fonctionner.

Si le dossier java/bin est dans le chemin de l'environnement, vous pouvez essayer:

System.Diagnostics.Process.Start("java.exe", "-version"); 

Si aucune exception, vous avez probablement un fichier java.exe valide.

+0

Cela semblait être la solution pour nous. merci – jazzBox

3

Le C# méthode

Process::Start(program, argumentString) 

peut être utilisé pour lancer des applications arbitraires, donc si vous connaissez la commande pour démarrer Java application à partir de la ligne de commande, vous pouvez déduire les arguments à traiter: Démarrer().

La commande Java sera

java -jar <jarfile> {and maybe <mainClass>} 

Ainsi, les problèmes ici sont

  1. est disponible java, est-il sur votre chemin?
  2. quel est le chemin du fichier jar
  3. quel est le nom de la classe dans le fichier jar implémentant main? Si les personnes livrant le jarfile ont été amicales, alors le manifeste du JAR spécifie le nom de la classe principale, donc vous n'aurez pas besoin de cet argument. Sinon, nous espérons que cela a été documenté quelque part.

Si Java a été installé correctement, il devrait déjà être sur votre PATH. Essayez-le depuis la ligne de commande. Je pense qu'il est raisonnable d'effectuer une pré-req que Java soit installé, donc dans votre application C# Je voudrais juste supposer que Java est disponible et que vous essayez de le démarrer, puis prendre toute défaillance avec un code tel que:

catch (Win32Exception e) 
      { 
       if(e.NativeErrorCode == ERROR_FILE_NOT_FOUND) 
       { 
        Console.WriteLine(e.Message + ". Check the path."); 
       } 

etc.

Questions connexes