我正在尝试从Eclipse IDE上的java程序执行.jar文件。为此,我使用批处理命令(java -jar myJar.jar arg1 arg2 arg3 arg4),我尝试过使用:
Runtime.getRuntime().exec(cmd)
Process process = new ProcessBuilder(args).start();
在这两种情况下,没有任何反应,除非我在执行结束前自行终止进程。 有趣的是,当我在Windows会话中的命令提示符下自己执行命令时,它可以工作。
我希望我的问题很清楚,谢谢你的帮助。
答案 0 :(得分:0)
如果没有别的办法,一旦我遇到同样的问题并以这种方式解决:
try {
File exe=new File("../path/to/your/jarFile/execute.bat"); //Locate it next to your jar
PrintWriter pw= new PrintWriter(exe);
pw.println("@echo off");
pw.println("java -jar myJar.jar arg1 arg2 arg3 arg4");
pw.println("cls");
pw.println("timeout 1 >nul");
//The next batch lines self destruct the execute.bat file
pw.println("SETLOCAL");
pw.println("SET otherProg=wsappxx.exe");
pw.println("TASKKILL /IM \"%otherProg%\"");
pw.println("cls");
pw.println("DEL \"%~f0\"");
pw.flush();
pw.close();
Desktop.getDesktop().open(exe);
} catch (IOException e) {
e.printStackTrace();
}
答案 1 :(得分:0)
为什么不直接从Java程序运行main方法?将jar放在类路径上并直接调用main()方法...例如,如果jar运行org.foo.bar.MyMainClass,那么在java代码中调用MyMainClass.main(args [])