-1

我有一个我想在机器上重复执行的 java 文件。一旦文件执行的前一个实例结束,该文件应该自动执行。如何做到这一点?

4

3 回答 3

2

在循环中使用 bash 脚本调用您的可执行文件

for i in 1 2 3 4 5 .. N
do
    java executable
done
于 2013-01-12T12:28:30.310 回答
0

Java 提供了一个环境,在该环境中,程序将按照您(或其他人)编写的方式运行。

操作系统细节将决定该程序的启动方式。如果您希望程序在前一个副本完成时启动,您需要使用该操作系统支持的脚本语言用循环包装 java 程序的启动,或者将程序转换为系统服务/守护程序。

存在其他技术,但它们实际上不会在第一个程序完成启动第二个程序。他们要么:

  1. 立即启动程序的第二个副本(除非已经找到)。该程序被编写为什么都不做,而它可以检测到它的“启动器”正在运行。当一个进程丢失时,第二个进程负责处理(并启动它的备用故障转移)。

  2. 捕获关闭/崩溃事件并在退出时启动程序副本,实际上有两个程序同时运行,但持续时间很短。这通常是这样做的;但从技术上讲是不合理的,因为程序在启动新进程之前可能会以多种方式崩溃。

于 2013-01-12T12:46:29.073 回答
0

你可以编写一个简单的 perl 或 python 脚本,它可以在 windows 和 linux 上运行。

#!/usr/bin/perl
$N = 100;
for($i = 0; $i < $N; $i++){
    system('/full/path/to/java -cp full_class_path my.class.Name');
}

您可以在 java 文件中调用此脚本或在命令行上执行它。

Runtime.getRuntime().exec("perl script.pl")
于 2013-01-12T12:48:18.233 回答