2012-11-06 4 views
1
내가 런타임에 다른 자바 프로그램을 실행해야 할

이 이것은 내가 그것을 작동있어 유일한 방법입니다 내 코드런타임 Exec을 변경 경로

try { 
           String cmd2 = "java -jar c:\\test\\deploy\\framework_e_app.jar"; 

           Process p = Runtime.getRuntime().exec(cmd2); 
           BufferedReader in = new BufferedReader( 
                new InputStreamReader(p.getInputStream())); 
           String line = null; 
           while ((line = in.readLine()) != null) { 
             System.out.print("<STDOUT>"); 
            System.out.print(line); 
            System.out.println("</STDOUT>"); 
           } 

           InputStream stderr = p.getErrorStream(); 
           InputStreamReader isr = new InputStreamReader(stderr); 
           BufferedReader br = new BufferedReader(isr); 
           String line2 = null; 
           System.out.print("<STDERROR>"); 
           while ((line2 = br.readLine()) != null) 
            System.out.print(line2); 
           System.out.println("</STDERROR>"); 

         } catch (IOException e) { 
          e.printStackTrace(); 
         } 

이지만, 현재의 구성 파일을 검색 있기 때문에 짜증나 통로.

나는 CMD2으로 이것을 사용하여 시도 : 나는 디렉토리 변경 작업 가져올 수 없습니다

String[] cmd2 = new String[4]; 
cmd2[0] = "cmd"; 
cmd2[1] = "/C"; 
cmd2[2] = "cd test\\deploy"; 
cmd2[3] = "java -jar framework_e_app.jar"; 

. 올바른 구문은 무엇입니까? (윈도우 환경에서는 분명히).

+1

이 cmd2 [1] = "C :"; "하지만이 방법을 사용하는 Windows 방식은 아닙니다. 그러나 확실하지 않습니다 ... – jlordo

답변

0

cd가 붙지 않습니다. 각 명령은 다른 프로세스에서 실행됩니다. http://docs.oracle.com/javase/7/docs/api/java/lang/Runtime.html#exec%28java.lang.String[],%20java와 같은 작업 디렉토리가있는 exec 형식을 사용하십시오. lang.String [], % 20java.io.File % 29