2013-08-02 18 views
0

我一直在嘗試執行jar文件。我第一次學會了如何通過cmd執行它們,並且我做得相當好。現在,我正在嘗試從我一直在編寫的Java代碼運行jar文件。該罐位於我的機器,我通過jar代碼運行罐子,如下所示:從遠程計算機上運行位於Raspberry PI上的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。罐子位於Raspberry PI上的路徑是:/home/pi/JARTest。我將命令行參數作爲「file1」傳遞給Jar文件。除了運行Jar文件外,servlet的其他操作也可以正常工作。

P.S- jar(JavaApplication.jar)的結果是相同的。它適用於我的機器(Windows),但它不想接受相同的jar文件和相同的命令Runtime r = Runtime.getRuntime();在樹莓PI。

請幫我這個。任何意見/建議/想法將深受讚賞。

在此先感謝。

+0

Java和jar都不是縮寫詞。 Java是大寫的,因爲它是一個專有名詞。罐子不是大寫的,因爲它不是。我編輯它。 – vy32

+0

@ vy32感謝您的編輯:)請記住下一篇文章。 –

回答

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

這是Windows代碼。它調用Windows命令外殼「cmd」。所以這不適用於其他操作系統(比如你的Pi上的Linux)。請致電rewrite it using the "java" command

+0

我試圖用java命令來做同樣的事情。它也不起作用。我試過這個:r.exec(new String [] {「java -jar /home/pi/JARTest/JavaApplication24.jar」,「file1」}) –

+0

你得到了什麼錯誤?也許你需要一個完整的'java'的路徑?並嘗試從參數(「java」,「-jar/home ...」,「file1」)中分離程序名稱; – Thilo

+0

它沒有給出任何錯誤(那是什麼讓它很難)。現在它打印出out.println的,但它不會給我jar的執行結果。 –

相關問題