Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.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
Java 如何停止在Netbeans中启动的maven项目_Java_Maven_Netbeans - Fatal编程技术网

Java 如何停止在Netbeans中启动的maven项目

Java 如何停止在Netbeans中启动的maven项目,java,maven,netbeans,Java,Maven,Netbeans,我在NetBeans中有一个项目,它以一个主函数开始,该函数接受参数。当我点击“停止”按钮时,项目继续运行,但不再有输出。 目前,我必须记住从控制台手动停止进程 我如何修改我的项目、maven设置或NetBeans配置,使进程在我点击stop时停止 我可以接受没有调用终结器或关闭钩子的流程 以这一类为例: public class Main { public static void main(String[] args) { System.out.println("arg

我在NetBeans中有一个项目,它以一个主函数开始,该函数接受参数。当我点击“停止”按钮时,项目继续运行,但不再有输出。 目前,我必须记住从控制台手动停止进程

我如何修改我的项目、maven设置或NetBeans配置,使进程在我点击stop时停止

我可以接受没有调用终结器或关闭钩子的流程

以这一类为例:

public class Main {
    public static void main(String[] args) {
        System.out.println("args: " + Arrays.asList(args));
        new Main().action();
    }

    private void action() {
        Date start = new Date();
        long endTime = start.getTime() + 600000;
        Date end;
        do {
            synchronized (Thread.currentThread()) {
                try {
                    Thread.currentThread().wait(1000);
                    System.out.println("PING");
                } catch (InterruptedException iex) {
                    return;
                }
            }
            end = new Date();
        } while (end.getTime() < endTime);
    }
}
公共类主{
公共静态void main(字符串[]args){
System.out.println(“args:+Arrays.asList(args));
新的Main().action();
}
私人无效诉讼{
开始日期=新日期();
long-endTime=start.getTime()+600000;
日期结束;
做{
已同步(Thread.currentThread()){
试一试{
Thread.currentThread().wait(1000);
系统输出打印项次(“PING”);
}捕获(中断异常iex){
返回;
}
}
结束=新日期();
}while(end.getTime()
我希望它只使用NetBeans停止按钮就死掉。

当您在NetBeans输出中点击“Stop”时,NB停止maven进程,但maven已经生成了实际的程序输出,因此Stop命令不会移交给您的程序

默认情况下,NetBeans使用“exec”目标调用exec maven插件。如果将其更改为“java”目标,则没有新的流程。在下面的更改之后,项目“属性”中的“运行”部分将为空且没有任何用处。我没有测试在这种情况下调用“System.exit”或类似命令会发生什么

另外请注意,从现在起,您必须注意自己在此处修改版本号

您必须转到“项目”窗口,右键单击项目,转到
属性
并选择操作元素和运行项目条目。它将如下所示:

你必须修改

  • 执行目标:
    过程类org.codehaus.mojo:execmaven插件:1.2.1:java
    (最后将
    exec
    更改为
    java
  • 设置属性:
    
    exec.mainClass=de.streamnet.stopfromnetbeans.Main
    exec.classpath=%classpath
    exec.args=第二个“第三个空间”
    
  • 所以它看起来像这样:

    从现在起,Maven将不会派生一个新流程,因此当您点击“停止”按钮时,它将实际停止该流程