Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
确保.Bat窗口关闭,整个Java程序在完成时关闭_Java_Windows_Batch File_Cmd - Fatal编程技术网

确保.Bat窗口关闭,整个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

我有一个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
还有一个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/?
,查看选项的完整列表