gpt4 book ai didi

java - 确保 .Bat 窗口关闭并且整个 Java 程序在完成后停止运行

转载 作者:可可西里 更新时间:2023-11-01 11:48:28 28 4
gpt4 key购买 nike

我有一个 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 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

还有一个使用 MRI 注册表连接其他节点的 Java 程序,然后它应该退出。

所以这看起来像这样:

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/? 以查看完整的选项列表。

关于java - 确保 .Bat 窗口关闭并且整个 Java 程序在完成后停止运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37269486/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com