代码编译正常,但是当我按下按钮时,什么也没发生,你知道为什么吗?我想在按EXIF时调用EXIF软件
EXIF.addActionListener (new ActionListener(){
public void actionPerformed (ActionEvent e) {
try {
Runtime.getRuntime().exec("C:\\Program Files (x86)\\Exif Pilot\\ExifPilot.exe");
} catch(Exception exc) {
/*handle exception*/
}
}
});
最佳答案
问题在于执行的过程输出/输入流。使用Java执行新进程时,它仅为其输入流分配8KB,因此必须使用它。搜索过程狼吞虎咽
此外,对于Windows,请使用cmd /c
执行程序或更好的程序:
String[] cmd = {"CMD", "/C", "C:\\Program Files (x86)\\Exif Pilot\\ExifPilot.exe"};
ProcessBuilder processBuilder = new ProcessBuilder(command);
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
while ((String line = br.readLine()) != null) {
System.out.println(line);
}
try {
int exitValue = process.waitFor();
//TODO - do something with the exit value
} catch (InterruptedException e) {
e.printStackTrace();
}
关于java - 通过Java中的按钮运行可执行程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37944157/