3

我有一个 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");

但是我需要返回码并且我需要等待它退出。

谢谢。

4

2 回答 2

12

终于解决了。文件名必须是 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;
于 2012-06-14T10:13:12.310 回答
2

您需要设置可执行文件的环境变量Pathjava.exe指定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);
于 2012-06-12T13:52:44.977 回答