2016-03-30 1 views
0

J'essaie d'exécuter un programme Java qui exécute la commande tskill Windows, mais je reçois l'exception listée dans le titre. Tskill est sur le chemin quand je l'exécute à partir de l'invite de commande. Je cours ce programme en tant qu'application Java dans Eclipse. J'ai ajouté c: \ windows \ system32 au chemin dans eclipse, mais le programme java ne peut toujours pas le trouver. Comment puis-je réparer ça? Comment puis-je déterminer quel chemin est défini dans le programme Java?java.io.IOException: Impossible d'exécuter le programme "tskill": Erreur CreateProcess = 2, le système ne trouve pas le fichier spécifié

try { 
     RunProcess.doExecuteCommand("tskill winword /A"); 
     Thread.sleep(1000); 
    } catch (Throwable t) { 
     throw new GenerationException(t); 
    } 
} 
+0

où est tskill (ou tskill.exe)? – VinhNT

+0

C: \ Windows \ System32 \ tskill.exe –

+0

@MrSmith Pouvez-vous vérifier si la variable 'PATH' de' System.out.println (System.getenv()); 'a l'entrée' c: \ Windows \ System32 \ '. Si non, pouvez-vous ajouter cette entrée et essayer. –

Répondre

1

Essayez cette

try { 
    Runtime rt = Runtime.getRuntime(); 
    rt.exec("tskill winword /A"); 
} catch (Throwable t) { 
    t.printStackTrace(); 
} 
+0

J'ai vérifié, sous le capot, c'est ce que fait RunProcess.doExecuteCommand. Comment puis-je déterminer le chemin parcouru par Runtime.getRuntime()? –

+0

Quel est le paquet complet de RunProcess? Semble que ce n'est pas la classe standard de JDK? – VinhNT

+0

Runtime.getRuntime renvoie l'environnement que votre application Java est en cours d'exécution, il contient toute l'héritage de l'environnement du système d'exploitation si vous ne l'écrasez pas en définissant eclipse ou un paramètre supplémentaire lors de l'exécution de l'application – VinhNT