我在NetBeans中有一个以main函数开头的项目,它接受参数。当我点击“停止”按钮时,项目继续运行,但不再有输出。 目前我必须记住从控制台手动停止该过程。
如何修改我的项目,maven设置或NetBeans配置,以便在我停止时停止进程。
我可以使用没有终结器或ShutdownHooks的过程。
考虑这个课程:
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);
}
}
我希望它只使用NetBeans停止按钮来消亡。
答案 0 :(得分:1)
当你点击&#34;停止&#34;在NetBeans输出中,NB停止maven进程,但是maven产生了实际的程序输出,因此stop命令不会移交给你的程序。
NetBeans使用&#39; exec&#39;来调用exec-maven-plugin。目标默认。如果您将其更改为&#39; java&#39;目标没有新的过程。在下面的更改之后,&#39;运行&#39;您项目中的部分&#39;属性&#39;将是空的,没有用。我没有测试如果你打电话给System.exit&#39;会发生什么?或者在这种情况下类似。
另请注意,从现在开始,您必须自己修改版本号。
您必须转到“项目”窗口,右键单击您的项目,转到Properties
并选择操作元素和运行项目条目。它看起来像这样:
您必须修改