为什么不能从这段代码中启动.exe文件?

时间:2017-06-05 15:34:14

标签: java exe

我正在处理数据包分析程序并遇到了一些问题:

  1. 我想打开一个exe文件来捕获数据包并写入另一个文件。
  2. 我想以高架模式打开它。
  3. 我写了一些:

    import java.awt.Desktop;
    import java.io.File;
    import java.io.IOException;
    import javax.swing.JOptionPane;
    
    public class Options extends javax.swing.JFrame {
        private void recActionPerformed(java.awt.event.ActionEvent evt) {
            if (Desktop.isDesktopSupported()) {
                try {
                    File myFile = new File(
                            "C:\\Users\\HP\\Documents\\response\\Server_Analyser\\src\\server_analyser\\serverdump\\reader.exe");
                    Desktop.getDesktop().open(myFile);
                } catch (IOException e) {
                    JOptionPane.showMessageDialog(null, "Sorry cannot find desired file !");
                }
            }
        }
    }
    

1 个答案:

答案 0 :(得分:1)

Desktop.getDesktop().open(FILE)命令仅打开包含关联程序的文件。例如,这可以用于与记事本关联的.txt文件。由于.exe没有关联,因为它本身就是一个程序,它不起作用。

要从您的Java代码运行.exe,您可以使用此命令

Process process = new ProcessBuilder("C:\\Users\\HP\\Documents\\response\\Server_Analyser\\src\\server_analyser\\serverdump\\reader.exe").start();

通过这种方式,您还可以通过Java应用程序控制执行的程序,例如再次关闭它。