2015-01-08 4 views
2

java를 사용하여 단일 cmd 창에서 여러 주석을 실행해야합니다. 내가 폴더에서 두 번째 명령을 실행해야하기 때문에java를 사용하여 cmd에서 여러 명령을 실행

주석은

1. cd C:\Apps\wildfly-8.0.0.Final\bin 
2. jboss-cli.bat --connect --command=\"deploy --force C:\Users\me\git\test\Test\build\libs\TestEAR.ear 

이다 "C : \ APPS \ wildfly-8.0.0.Final 빈 \".

가 I이 시도 :

Runtime.getRuntime().exec("cmd /c start cd C:\\Apps\\wildfly-8.0.0.Final\\bin\\ && start cmd.exe /c jboss-cli.bat --connect --command=\"deploy --force C:\\Users\\me\\git\\test\\Test\\build\\libs\\TestEAR.ear\""); 

을하지만 이러한 명령 그게 하나 개에 cmd 창이 열리는되고 첫 번째 명령을 실행하고, 별도로 실행하고 또 다른 cmd를 윈도우에 두 번째 명령을 실행하며,

배치 파일이있는 몇 가지 해결책을 찾았지만 응용 프로그램에서 배치 파일을 사용할 수 없습니다 (배치 파일을 사용하지 않아야 함).

누구든지 해결책을 제안 할 수 있습니까?

+0

가능한 중복 비슷해 [자바 : cmd를 명령 (한 번에 여러 인수 여러 명령을) 실행] (http://stackoverflow.com/questions/17072849/java-running-cmd-commands-multiple- commands-with-multiple-arguments-at-once) – ha9u63ar

+0

@ ha9u63ar : 해결책이 적절하지 않습니다. 내 응용 프로그램에 배치 파일을 사용할 수 없습니다. –

+1

참고 [Runtime.exec()이 실행되지 않는 경우] (http://www.javaworld.com/article/2071275/core-java/when-runtime-exec-- -won-t.html)을 참조하십시오. 그렇다면 그것을 무시하는 것은'exec'을 참조하고 프로세스 생성을 위해'ProcessBuilder'를 사용합니다. –

답변

3

질문이 있으시면 ProcessBuilder을 사용하고 directory(File)으로 전화하십시오. 의

public static void main(String[] args) throws IOException { 
    String folder = "C:\\Apps\\wildfly-8.0.0.Final\\bin"; 
    String command = "jboss-cli.bat --connect --command=\"deploy --force " 
     + "C:\\Users\\me\\git\\test\\Test\\build\\libs\\TestEAR.ear\""; 
    ProcessBuilder pb = new ProcessBuilder(command); 
    pb.directory(new File(folder)); 
    pb.inheritIO(); 
    Process p = pb.start(); 
    try { 
     p.waitFor(); 
    } catch (InterruptedException e) { 
     e.printStackTrace(); 
    } 
} 
+0

프로젝트를 평가하는 중 문제가 발생했습니다 : '전자 상거래'.() values ​​: [] 가능한 해결책 : notify(), size(), tokenize(), size(), tokenize() 메소드의 서명이 없습니다.) –

+0

나는 또한 cmd를 열고 cmd에서이 명령을 실행해야한다. –

+0

@JinceMartin 나는 그것을 할 수 없다고 확신한다. cmd 스크립트를 작성하여 실행해도 cmd를 열고 제어 할 수는 없습니다. –

관련 문제