我一直在尝试执行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在Java上存储/存储JavaApplication.jar。 jar位于Raspberry PI上的路径是: / home / pi / JARTest 。我将命令行参数作为“file1”传递给Jar文件。除了运行Jar文件之外,servlet的其他操作也可以正常工作。
P.S- jar(JavaApplication.jar)的结果是一样的。它适用于我的机器(Windows),但它根本不想接受相同的jar文件和相同的命令Runtime r = Runtime.getRuntime();在Raspberry PI上。
请帮我解决这个问题。任何意见/建议/想法将深表感谢。
提前致谢。
答案 0 :(得分:1)
r.exec(new String[] {
"cmd","/c", "start /home/pi/JARTest/JavaApplication24.jar", "file1" });
那是Windows代码。它调用Windows命令shell“cmd”。所以这不适用于其他操作系统(比如你的Pi上的Linux)。