代码编译正常,但是当我按下按钮时,什么也没发生,你知道为什么吗?我想在按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/

10-17 01:51