使用System.Diagnostics.Process启动Jar文件

我有一个jar文件,我想在C#中运行。

这是我到目前为止所拥有的:

clientProcess.StartInfo.FileName = @"java -jar C:\Users\Owner\Desktop\myJarFile.jar"; clientProcess.StartInfo.Arguments = "[Something]"; clientProcess.Start(); clientProcess.WaitForExit(); int exitCode = clientProcess.ExitCode; 

不幸的是,我得到“系统无法找到指定的文件”,这是有道理的,因为它不是一个文件的命令。

我见过在线代码,告诉你使用:

 System.Diagnostics.Process.Start("java -jar myprog.jar"); 

但是我需要返回代码,我需要等待它退出。

谢谢。

终于解决了。 文件名必须是java,参数必须包含jar文件的位置(以及要传递的任何参数)

 System.Diagnostics.Process clientProcess = new Process(); clientProcess.StartInfo.FileName = "java"; clientProcess.StartInfo.Arguments = @"-jar "+ jarPath +" " + argumentsFortheJarFile; clientProcess.Start(); clientProcess.WaitForExit(); int code = clientProcess.ExitCode != 0) 

您需要设置java.exe可执行文件的环境变量Path或指定java.exe的完整路径。

  ProcessStartInfo ps = new ProcessStartInfo(@"c:\Program Files\java\jdk1.7.0\bin\java.exe",@"-jar C:\Users\Owner\Desktop\myJarFile.jar"); Process.Start(ps);