草庐IT

external-system

全部标签

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 - Java中的System.getProperty和properties.getProperty有什么区别

我有一个名为prop.properties的属性文件。在我的主代码中,我有System.getProperty()和properties.getProperty()。我的问题是:它们都是从prop.properties获取属性还是从不同的地方获取属性,properties.getProperty()从获取属性prop.properties和System.getProperty()从其他地方获取属性。 最佳答案 System.getProperty()获取JVM定义的属性(JVM本身或您可能在命令行中传递的任何-D选项)。可以找到定义

java - Eclipse 中的 "Add JARs"和 "Add External JARs"有什么区别?

在项目的“属性”页面中,在“Java构建路径”->“库”页面下,我无法弄清楚“添加JAR”和“添加外部JAR”按钮之间的区别。 最佳答案 添加Jar-在构建路径中包含项目中已经存在的jar文件。添加外部jar-用于包含Eclipse项目工作区文件夹“外部”的jar文件。它们将被链接或复制。 关于java-Eclipse中的"AddJARs"和"AddExternalJARs"有什么区别?,我们在StackOverflow上找到一个类似的问题: https://

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

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

java - 设置操作系统环境变量后,Apache Maven install "' mvn' not Recognized as an internal or external command"?

锁定。这个问题及其答案是locked因为这个问题是题外话,但具有历史意义。它目前不接受新的答案或交互。我已按照官方安装说明here适用于WindowsXP。但有时当我执行mvn--version时,我会收到错误消息,'mvn'notrecognizedasaninternalorexternalcommand我什至重新启动了我的机器几次,但操作系统并不总是能识别maven命令。但是当我执行cd%M2_HOME%或cd%M2%时,它会将我带到安装目录。我还确保将用户变量M2添加到Path系统变量中。那么,什么给了? 最佳答案 解决方法

java - 使用 System.out 和 PrintWriter 写入控制台

在阅读JavaI/O时,我意识到有两种方法可以写入标准输出。以下是使用这两种技术的片段importjava.io.*;publicclassConsoleIO{publicstaticvoidmain(String[]args){System.out.println("Method1");PrintWriterwriter=newPrintWriter(System.out);writer.println("Method2");writer.flush();writer.close();}}使用其中一种是否有任何性能优势? 最佳答案

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

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

java - 如何在android中将 `content://media/external/images/media/Y`转换为 `file:///storage/sdcard0/Pictures/X.jpg`?

我正在尝试将图像从我的Android应用上传到Google云端硬盘,基于此tutorial.当我调试他们的示例项目时,我看到了一个典型的fileUri=file:///storage/sdcard0/Pictures/IMG_20131117_090231.jpg在我的应用中,我想上传一张现有照片。我这样检索它的路径privatevoidGetAnyImage(){Filedir=newFile(Environment.getExternalStorageDirectory().getAbsolutePath()+"/Pictures/Screenshots");//-->/stora

java - 重定向 System.out.println

我的应用程序有许多System.out.println()语句。我想从println捕获消息并将它们发送到标准记录器(Log4j、JUL等)。怎么做? 最佳答案 System类有一个setOut和setErr可用于将输出流更改为,例如,带有支持File的新PrintStream,或者在这种情况下,可能是另一个使用您的日志子系统的流选择。请记住,如果您将日志库配置为输出到标准输出或错误(可能是无限递归类型),您很可能会遇到麻烦。如果是这种情况,您可能只想将System.out.print类型的语句替换为真正的日志记录调用。