Java 通过JButton操作侦听器并行运行的多个perl脚本实例
我通过Java 通过JButton操作侦听器并行运行的多个perl脚本实例,java,multithreading,perl,Java,Multithreading,Perl,我通过“Runtime.getRuntime().exec(“Perl C:/script.pl”)” 作为Jbutton操作侦听器的一部分。我希望能够单击按钮两次,并运行相同Perl脚本的两个实例。脚本正在读取文本文件,因此它在第二次启动时的行为会根据文本文件的不同而有所不同,但通常脚本也会执行相同的操作 我试图通过将运行时命令包装到一个新线程中,并在每次按下按钮时对其执行“.run()”,来解决这个问题,但这似乎只会中断第一个实例并启动新的实例。似乎没有办法并行执行两个相同的Perl脚本。关
“Runtime.getRuntime().exec(“Perl C:/script.pl”)”
作为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();
}
}
说
每个Java应用程序都有一个类运行时实例,该实例允许应用程序与运行应用程序的环境交互。当前运行时可以从getRuntime方法获得
它可能会阻塞您的呼叫。显示代码,请阅读操作侦听器的代码,不确定这是您想要看到的还是其他内容,如果是,请告诉我,谢谢。这很有意义,因为我的应用程序有几个按钮,它们都启动不同的perl脚本(在不同的线程中)但是所有这些都访问相同的运行时环境,因此不允许我单击其中两个按钮并获得所需的功能。你知道我怎样才能让它这样工作吗?使用process builder会有帮助吗?我不知道您是否可以对这些调用进行后台处理?然后不会有一个块,但是会有严重的反响,比如太多的分叉进程,而不知道它们结束。谢谢,我可能应该使用它,因为我在应用程序的其他地方使用了一些后台进程。我正在执行的Perl脚本只持续大约一分钟,不做任何繁重的工作,并且我对它们何时完成并不特别感兴趣,只要它们运行并且不互相中断就可以了。再次感谢。