반응형
자바 프로그래밍 : 자바에서 exe 호출 및 매개 변수 전달
Java에서 exe를 호출하고 특정 매개 변수를 전달하는 메커니즘을 찾고 있습니다. 어떻게 할 수 있습니까?
Process process = new ProcessBuilder("C:\\PathToExe\\MyExe.exe").start();
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;
System.out.printf("Output of running %s is:", Arrays.toString(args));
while ((line = br.readLine()) != null) {
System.out.println(line);
}
이전 코드가 작동합니다. 그러나 매개 변수를 전달할 수 없습니다 . MyExe.exe는 매개 변수를 허용합니다. 다른 문제는 PathToExe에 공백이있는 경우입니다. ProcessBuilder가 작동하지 않는 것 같습니다. 예를 들면 :
C:\\User\\My applications\\MyExe.exe
감사합니다.
생성자 자체에 인수를 전달하십시오.
Process process = new ProcessBuilder("C:\\PathToExe\\MyExe.exe","param1","param2").start();
당신은 올바른 길을 가고 있습니다. 이 생성자는 인수를 허용하거나 그들을 준공 후를 지정할 수 있습니다 ProcessBuilder#command(java.util.List)
와 ProcessBuilder#command(String...)
.
import java.io.IOException;
import java.lang.ProcessBuilder;
public class handlingexe {
public static void main(String[] args) throws IOException {
ProcessBuilder p = new ProcessBuilder();
System.out.println("Started EXE");
p.command("C:\\Users\\AppData\\Local\\Google\\Chrome\\Application\\chrome.exe");
p.start();
System.out.println("Started EXE");
}
}
exe가 일부 dll 또는 특정 종속성에 의존하는 경우 아래에서 작동하면 디렉토리 경로를 설정해야합니다. 아래에서 언급했듯이 exePath는 exe가 참조 파일과 함께 배치 된 폴더를 의미합니다.
임의의 temporaray 파일을 생성하는 Exe 응용 프로그램이므로 processBuilder.directory (...)의 폴더 언급에 생성됩니다.
**
ProcessBuilder processBuilder = new ProcessBuilder(arguments);
processBuilder.redirectOutput(Redirect.PIPE);
processBuilder.directory(new File(exePath));
process = processBuilder.start();
int waitFlag = process.waitFor();// Wait to finish application execution.
if (waitFlag == 0) {
...
int returnVal = process.exitValue();
}
**
반응형
'developer tip' 카테고리의 다른 글
Vim의 외부 명령에 대한 파이핑 버퍼 (0) | 2020.09.25 |
---|---|
왜“2i;” (0) | 2020.09.25 |
내 변경 사항 만 표시하도록 git 로그 필터링 (0) | 2020.09.25 |
클래스 속성이 정수임을 어떻게 지정합니까? (0) | 2020.09.25 |
iOS 6 아이콘을 유지하면서 iOS 7 앱 아이콘, 실행 이미지 및 명명 규칙 (0) | 2020.09.25 |