我一直在尝试执行 jar 文件。我首先学会了如何通过 cmd 执行它们,而且我做得很好。现在,我目前正在尝试从我一直在编写的 Java 代码中运行 jar 文件。jar 位于我的机器中,我通过 jar 代码运行 jar,如下所示:
Runtime r = Runtime.getRuntime();
Process p = null;
p = r.exec(new String[] { "cmd", "/c", "start C:\\jartest\\JavaApplication.jar" });
这在我的机器上非常有效。JavaApplication.jar 的输出是它创建了一个文件夹并实现了输出。
当我想通过 Servlet 从我的机器运行位于 Raspberry PI 的 Jar 文件时,就会出现问题。代码如下所示:
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
QLM qlm = new QLM();
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
out.println("Response of Servlet Content Started \n");
String message= request.getParameter("msg");
out.println(message);
if((qlm.get_Envelop(message))!= null){
out.println("DATA IS VALID");
} else out.println("WRONG MESSAGE!!");
out.println("Response of Servlet Content end \n");
**Runtime r = Runtime.getRuntime();
out.println("Am I here??");
r.exec(new String[] {"cmd","/c", "start /home/pi/JARTest/JavaApplication24.jar", "file1" });**
out.println("Did it work??");
} finally {
out.close();
}
}
它与我机器上的 jar 文件相同。我通过 WinSCP 在 PI 上放置/存储 JavaApplication.jar。jar 位于树莓派上的路径是:/home/pi/JARTest。我将命令行参数作为“file1”传递给 Jar 文件。servlet 的其他操作也可以正常工作,除了运行 Jar 文件。
PS- jar (JavaApplication.jar) 的结果是相同的。它适用于我的机器(Windows),但它根本不想接受相同的 jar 文件和相同的命令 Runtime r = Runtime.getRuntime(); 在树莓派上。
请帮我解决一下这个。任何输入/建议/想法将不胜感激。
提前致谢。