草庐IT

quick_exit

全部标签

java - System.exit(1) 的替代方案

由于各种原因,在编写Java应用程序时不赞成调用System.exit,那么如何通知调用进程并非一切都按计划进行?编辑:1是任何非零退出代码的standin。 最佳答案 System.exit的使用在“应用程序”实际上是大型Java应用程序(服务器)的子应用程序(例如servlet、applet)时不受欢迎:在这种情况下,System.exit可以停止JVM,因此也可以停止所有其他子应用程序。在这种情况下,抛出一个适当的异常,可以被应用程序框架/服务器捕获和处理是最好的选择。如果Java应用程序真的要作为独立应用程序运行,那么使用S

java - 在 Java 程序的主线程中调用 System.exit(0) 和 Thread.currentThread().interrupt() 有什么区别?

两者都会导致程序停止执行。不过,很明显,这种情况的发生方式肯定存在一些差异。它们是什么? 最佳答案 总结thread.interrupt()不会停止线程。它用于多线程程序中的协调。除非您确切知道自己在做什么,否则不要使用它。抛出RuntimeException将(通常)终止线程,但不一定终止程序。System.exit(int)几乎总是终止程序并返回状态码。在不寻常的情况下,System.exit(int)可能不会真正停止程序。另一方面,Runtime.getRuntime().halt(int)总是这样。线程中断恐怕你的第一句话是

java - 调试万无一失的策略 "The forked VM terminated without saying properly goodbye. VM crash or System.exit called ?"

我正在处理一个相当复杂的java项目,其中包含许多依赖项和许多单元测试。我在mac(mavericks)上使用java1.6.0_65,maven3.0.5和maven-surefire-plugin:2.16在多个分支中运行。我的问题是,使用多个fork运行此设置会导致fork退出:"TheforkedVMterminatedwithoutsayingproperlygoodbye.VMcrashorSystem.exitcalled?"只用一个fork运行它不会产生问题(一切都通过了)有一些关于此问题的信息,包括thisStackOverflowquestion和thissuref

java - 如何捕获 System.exit 事件?

我在java中有一个应用程序,在其中我尝试确保如果有人退出代码中的System.exit()代码,则应该调用一个监听器来执行一些操作,例如记录消息和释放资源...我该如何实现它,欢迎任何建议/方法。 最佳答案 Runtime.addShutdownHook方法可以用来添加一个关闭钩子(Hook),它基本上是一个未启动的线程,它在Java虚拟机关闭时执行。但是,这是一个应该小心处理的领域,因为它是在JVM生命周期的一个非常敏感的时间执行的。Runtime.addShutdownHook方法的API规范:Shutdownhooksrun

java - 如何防止对 System.exit() 的调用终止 JVM?

我几乎可以肯定这是不可能的,但值得一试。我正在为某个工具编写命令行界面。我说的是调用另一个Java应用程序的Java应用程序。该工具在执行后调用System.exit,这反过来又终止了我自己的执行环境。我不想那样。有什么方法可以忽略System.exit调用? 最佳答案 是的,这可以使用SecurityManager。试试下面的classMySecurityManagerextendsSecurityManager{@OverridepublicvoidcheckExit(intstatus){thrownewSecurityExc

java - JFrame.dispose() 与 System.exit()

这两种方法有什么区别——System.exit()和JFrame.dispose()?如果我们想在单击按钮时关闭JavaSwing应用程序,我应该使用哪种方法? 最佳答案 System.exit();导致JavaVM完全终止。JFrame.dispose();导致JFrame窗口被操作系统销毁和清理。根据documentation,如果没有其他可用的Windows,这可能会导致JavaVM终止,但这实际上应该被视为副作用而不是常态。你选择的那一个真的取决于你的情况。如果你想终止当前JavaVM中的所有内容,你应该使用System.e

java - 防止 API 中的 System.exit()

我正在使用第三方库,如果遇到异常,它会执行System.exit()。我正在使用jar中的API。无论如何我可以阻止System.exit()调用,因为它会导致我的应用程序关闭?由于许多其他许可问题,删除System.exit()后,我无法反编译和重新编译jar。我曾经在stackoverflow中遇到过一个[我不记得的其他问题]的答案,我们可以使用Java中的SecurityManager来做这样的事情。 最佳答案 您可以安装一个禁用System.exit()的安全管理器:privatestaticclassExitTrapped

java - 来自 junit 测试的 "Forked Java VM exited abnormally"错误

我有一个在开发机器上单独运行时通过的javajunit测试。我们还有一个hudson作业,它在带有Java1.5的MacOSX10.4节点上运行所有测试,通过ant调用。直到最近,该测试才在hudson构建中通过,但现在(没有相关的代码更改)每次测试都失败,并出现以下错误:错误信息ForkedJavaVMexitedabnormally.PleasenotethetimeinthereportdoesnotreflectthetimeuntiltheVMexit.堆栈跟踪junit.framework.AssertionFailedError:ForkedJavaVMexitedabn

firebase - 完成错误 : Gradle task assembleDebug failed with exit code 1

Launchinglib\main.dartonHTCOneM9PLUSindebugmode...Initializinggradle...Resolvingdependencies...Gradletask'assembleDebug'...registerResGeneratingTaskisdeprecated,useregisterGeneratedResFolders(FileCollection)registerResGeneratingTaskisdeprecated,useregisterGeneratedResFolders(FileCollection)regis

ios - flutter -iOS : Command/bin/sh failed with exit code 255

下午好,我尝试在iOS上运行Flutter项目,之前在Android上成功运行。但是,我得到了一个错误:"x86_64"isnotanallowedvalueforoption"ios-arch".Run'flutter-h'(or'flutter-h')foravailablefluttercommandsandoptions.Failedtobuild/Users/user123/Downloads/my_app.Command/bin/shfailedwithexitcode255我尝试了这里提供的不同解决方案,解决了各种错误“命令/bin/sh失败,退出代码XXX”。但是,他们