通过JButton操作监听器并行运行的多个perl脚本实例



我正在通过"Runtime.getRuntime().exec("perl C:/script.pl")" 执行Perl脚本

作为Jbutton动作监听器的一部分。我希望能够点击两次按钮并运行同一Perl脚本的两个实例。脚本正在读取一个文本文件,因此在第二次启动时,它的行为会根据文本文件的不同而有所不同,但通常情况下,脚本会做同样的事情。

我试图通过将运行时命令封装在一个新线程中,并在每次按下按钮时对其执行".run()"来解决这个问题,但这似乎只是中断第一个实例并启动新实例。似乎没有办法并行执行两个相同的Perl脚本。关于我该如何做到这一点,有什么想法吗?

ActionListener edit = new ActionListener() {
   public void actionPerformed(ActionEvent actionEvent) {
      class GetThread implements Runnable {
        public void run() {
          try {
            Runtime.getRuntime().exec("C:/Perl/bin/perl5.16.3.exe C:/Perl/get.pl", null, new File("C:/Perl"));
          } catch (IOException e1) {
            exceptionLog(e1);
          }
        }
      }
   GetThread get = new GetThread();
   get.run();
   }
}

http://docs.oracle.com/javase/7/docs/api/java/lang/Runtime.html表示

每个Java应用程序都有一个类Runtime的实例,该实例允许应用程序与运行应用程序的环境接口。当前运行时可以从getRuntime方法获得。

它可能正在阻止您的呼叫。

最新更新