Ade*_*esh 6 java application-restart
我正在研究一种通过单击GUI上的按钮来重启我的Java应用程序的方法.我在网上搜索并遇到了main(new String [0]).我需要了解这是否是重启我的应用程序的有效方法.有人可以建议谢谢.
private void bnNewsaleActionPerformed(java.awt.event.ActionEvent evt) {
main( new String[0]);
}
Run Code Online (Sandbox Code Playgroud)
编辑这会更好吗?
private void bnNewsaleActionPerformed(java.awt.event.ActionEvent evt) {
classname.this.dispose();
main( new String[0]);
}
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 13
它main使用空字符串数组调用静态方法.看看这是否更清楚:
String[] args = new String[0]; // Or String[] args = {};
main(args);
Run Code Online (Sandbox Code Playgroud)
不可否认的是,main从非主方法调用方法是不寻常的......这并不会真正"重启"应用程序.它将从您现有的处理程序中调用它,这可能会产生令人讨厌的后果.我不推荐它.
如果你能找到一种方法来开始一个完全干净的过程,那将是一个更可靠的"重启".
如果不退出JVM,您将无法重新启动应用程序 - JVM将分配对象,线程等,而且没有大量的内务管理,您也不会轻易将其丢弃.
我认为更简单的方法是将您的应用程序包装在脚本中,并让脚本在使用特定退出代码退出时重新启动应用程序.这样,您可以通过System.exit()调用完全删除JVM ,如果脚本只在看到特定退出代码时重新启动应用程序,则可以选择退出或退出并重新启动.
例如,查看JavaServiceWrapper.这提供了使用特定配置/参数启动Java应用程序以及控制重新启动行为的功能.请注意,它提供了一个特定的API调用来从您的应用程序中调用重新启动.
main()是您在该类中定义的函数。
它需要一个类型为 的参数string[]。
该行调用该函数,就像任何其他函数一样。
它传递一个空字符串数组 ( new String[0])
由于您的main()函数启动了您的应用程序,这将“重新启动”它。
但是,它不会重置任何静态。
| 归档时间: |
|
| 查看次数: |
18124 次 |
| 最近记录: |