确保.Bat窗口关闭,整个Java程序在完成时关闭
我有一个Java程序,可以对网络进行一些实验:确保.Bat窗口关闭,整个Java程序在完成时关闭,java,windows,batch-file,cmd,Java,Windows,Batch File,Cmd,我有一个Java程序,可以对网络进行一些实验: javac *.java SET nodesize=11 Set port=3001 start rmiregistry 3300 & timeout /t 6 /nobreak > NUL start cmd /k java Node 3300 %port% %nodesize% 0 & timeout /t 1 /nobreak > NUL Set /A port=%port%+1 start cmd /k
javac *.java
SET nodesize=11
Set port=3001
start rmiregistry 3300 &
timeout /t 6 /nobreak > NUL
start cmd /k java Node 3300 %port% %nodesize% 0 &
timeout /t 1 /nobreak > NUL
Set /A port=%port%+1
start cmd /k java Node 3300 %port% %nodesize% 0 &
timeout /t 1 /nobreak > NUL
Set /A port=%port%+1
start cmd /k java Node 3300 %port% %nodesize% 0 &
timeout /t 1 /nobreak > NUL
还有一个Java程序,它使用MRI注册表与其他节点连接,然后退出
这看起来像这样:
public static main(){
Node n = new Node();
n.notifyOthers();//informs others that a new node has joined
n.startAlgorithm();
}
private synchronized void startAlgorithm() {
final NodeImplementation currentNode = this;
new Thread(new Runnable() {
public void run() {
try {
executeAlgorithm();
} catch (Exception e) {
e.printStackTrace();
System.exit(0)
}
}
}).start();
}
executeAlgorithm(){
while(!done){
//do a lot of stuff
//including messaging others
}
System.exit();
}
但是这并没有关闭控制台窗口,你知道如何正确地做到这一点吗?我不完全理解你试图用批处理文件实现什么,以及为什么你在最后放了符号(这不是Bash),但你的窗口保持打开的原因是你使用了
cmd/k
cmd/k
将运行一个命令,然后让窗口保持打开状态,并显示进一步命令的提示
cmd/c
将运行命令,然后退出
因此,您需要将/k
更改为/c
您可以在控制台中键入cmd/?
,查看选项的完整列表