我有一个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");
但是我需要返回代码,我需要等待它退出。
感谢。
答案 0 :(得分:11)
终于解决了。文件名必须是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)
答案 1 :(得分:1)
您需要设置Path
可执行文件的环境变量java.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);