내 자바 프로젝트에서 다른 스레드에서 외부 .bat 파일을 실행하고 싶습니다. cmd를 프로세스가 이후에 나타납니다 - 내가하게 IntelliJ IDEA에서 로컬로 할 때 올바른 작동 그래서Windows 서비스에서 java에서 .bat 파일을 올바르게 실행하는 방법은 무엇입니까?
call chdir %~dp0
start java <_some_arguments>
: 나는 다음의 .bat 파일을 실행
private void posAppRunner(final String path[], final Class targetClass) {
new Thread(new Runnable() {
public void run() {
try {
String line;
Process p = Runtime.getRuntime().exec(path);
BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
while ((line = input.readLine()) != null) {
System.out.println(line);
}
input.close();
} catch (IOException e) {
LogFactory.getLog(targetClass).warn("Error when starting a PosApplication: " + e.getMessage());
}
}
}).start();
:이 목적을 위해 나는 다음과 같은 방법을 사용 자바 프로세스가 나타나고 그 후에 cmd 프로세스가 사라진다.
하지만 TeamCity Windows 서비스에서 ANT를 통해이 Java 프로젝트를 실행하면 cmd 프로세스 만 나타나고 아무 것도 발생하지 않습니다. bat 파일에서 시작해야하는 Java 프로세스가 나타나지 않습니다. 나는 프로세스 출력을 읽지 않는 것처럼 보이지만 나는 그렇게한다!
이 상황을 어떻게 극복 할 수 있습니까?
불행히도 작동하지 않습니다. 배치 파일에서 "call chdir % ~ dp0"문자열을 삭제 한 후에도. – Gwen