Starting a Jar file using System.Diagnostics.Process

你说的曾经没有我的故事 提交于 2019-11-30 18:39:09

问题


I have a jar file which I want to run from within C#.

Here's what I have so far:

clientProcess.StartInfo.FileName = @"java -jar C:\Users\Owner\Desktop\myJarFile.jar";
            clientProcess.StartInfo.Arguments = "[Something]";

            clientProcess.Start();
            clientProcess.WaitForExit();

            int exitCode = clientProcess.ExitCode;

Unfortunatly I get "System could not find specified file", which makes sense since its not a file its a command.

I've seen code online which tells you to use:

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

However I need the return codes AND I need to wait for it to exit.

Thanks.


回答1:


Finally solved it. The filename has to be java and the arguments has to contain the location of the jar file (and anything arguments you want to pass that)

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



回答2:


You need to set environment variable Path of java.exe executable or specify the full path of 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);


来源:https://stackoverflow.com/questions/10997915/starting-a-jar-file-using-system-diagnostics-process

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!