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

C# 使用System.Diagnostics.Process启动Jar文件,c#,java,system.diagnostics,C#,Java,System.diagnostics,我有一个jar文件,我想从C#中运行它 以下是我目前掌握的情况: clientProcess.StartInfo.FileName = @"java -jar C:\Users\Owner\Desktop\myJarFile.jar"; clientProcess.StartInfo.Arguments = "[Something]"; clientProcess.Start(); clientProcess.WaitFo

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

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


您是否尝试过
clientProcess.StartInfo.FileName=@“C:\Users\Owner\Desktop\myJarFile.jar”?可能是@yogi-I的重复,但它默默地失败了。@Filburt-我不同意。我的问题更具体。运行它的答案是使用我在底部输入的代码。但是我想运行它,等待它完成并获取退出代码-这就是问题的开始。我如何获取返回代码,或阻止它完成?似乎您忘记删除
!=0)
在末尾:)
System.Diagnostics.Process clientProcess = new Process();
clientProcess.StartInfo.FileName = "java";
clientProcess.StartInfo.Arguments = @"-jar "+ jarPath +" " + argumentsFortheJarFile;
clientProcess.Start();
clientProcess.WaitForExit();   
int code = clientProcess.ExitCode;