2013-08-02 2 views
0

jar 파일을 실행하려고했습니다. 먼저 cmd를 통해 실행하는 법을 배웠고 상당히 잘 수행했습니다. 자, 지금 내가 작성한 Java 코드에서 jar 파일을 실행하려고합니다. jar 파일은 다음과 같이 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입니다. Jar 파일에 명령 줄 인수를 "file1"로 전달합니다. 서블릿의 다른 연산은 Jar 파일을 실행하는 것을 제외하고는 잘 동작합니다.

P.S- jar (JavaApplication.jar)의 결과는 동일합니다. 내 컴퓨터 (Windows)에서 작동하지만 동일한 jar 파일과 동일한 명령을 허용하지 않으려합니다. Runtime r = Runtime.getRuntime(); 라스베리 파이에.

도와주세요. 모든 입력/제안/아이디어는 깊이 감사 할 것입니다.

미리 감사드립니다.

+0

Java 또는 jar는 약자입니다. 자바는 고유 명사이므로 대문자로 표기됩니다. Jar는 대문자가 아닙니다. 나는 그것을 편집했다. – vy32

+0

@ vy32 편집 해 주셔서 감사합니다. 다음 게시물에서 계속 유의하십시오. –

답변

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

이것은 Windows 코드입니다. Windows 명령 셸인 "cmd"를 호출합니다. 따라서 다른 OS에서는 작동하지 않습니다 (예 : 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을 모두 인쇄하지만 병이 실행 된 결과는 나에게주지 않습니다. –

관련 문제