从远程计算机(我的计算机)运行位于Raspberry PI上的jar文件

时间:2013-08-02 10:19:25

标签: java servlets jar

我一直在尝试执行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上。

请帮我解决这个问题。任何意见/建议/想法将深表感谢。

提前致谢。

1 个答案:

答案 0 :(得分:1)

 r.exec(new String[] {
    "cmd","/c", "start /home/pi/JARTest/JavaApplication24.jar", "file1" });

那是Windows代码。它调用Windows命令shell“cmd”。所以这不适用于其他操作系统(比如你的Pi上的Linux)。

尝试rewrite it using the "java" command