我正在运行一个程序,想看看它的返回代码是什么(因为它根据不同的错误返回不同的代码).
我知道在Bash中我可以通过运行来做到这一点
回声$?
在Windows上使用cmd.exe时该怎么办?
请帮我解决这个问题.我不完全理解日志中的错误意味着什么.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 21.749s
[INFO] Finished at: Thu Apr 24 10:10:20 IST 2014
[INFO] Final Memory: 15M/37M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.15:test (default-test) on project samples.simpleforwarding: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.15:test failed: The forked VM terminated without saying properly goodbye. VM crash or System.exit called ?
[ERROR] Command wascmd.exe /X /C ""C:\Program Files\Java\jdk1.7.0_55\jre\bin\java" -Xmx1024m -XX:MaxPermSize=256m -jar E:\OpenDayLight\controller\opendaylight\samples\simpleforwarding\target\surefire\surefirebooter53410321571238933.jar E:\OpenDayLight\controller\opendaylight\samples\simpleforwarding\target\surefire\surefire86076271125218001tmp E:\OpenDayLight\controller\opendaylight\samples\simpleforwarding\target\surefire\surefire_01846991116135903536tmp"
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full …
Run Code Online (Sandbox Code Playgroud) 我找到了终止(关闭或停止)我的Java程序的方法.我找到了两个解决方案.
使用回报;
当我想退出或终止程序执行时,我添加了这个.
使用System.exit() ;
有时我用它.我从这个问题中读到了Sytem.exit().
所以,我对他们都知之甚少.但我仍然对他们的实际工作方式感到困惑.请检查以下代码......
public class Testing {
public static void main(String... str) {
System.out.println(1);
System.exit(0);
System.out.println(2);
return;
}
}
Run Code Online (Sandbox Code Playgroud)
我相信2不会出现.我想知道为什么return;
或其他代码可以写在声明System.exit(0);
和真正定义的下面return;
(因为对我来说这return
没有任何变量或值是奇怪的事情)?
有时,我会运行一个意外包含无限循环或其他东西的程序.Eclipse将让我继续编辑程序,但速度超慢.我怎么能阻止它?(我想重新启动JVM吗?)重启eclipse本身总是有效,但这会破坏我的工作流程.
类似于$?
在Linux中,有没有办法在Windows批处理文件(.bat
)中获取程序的退出状态?
例如,程序System.exit(0)
成功执行,System.exit(1)
如果失败,如何将这些退出值存储在.bat
文件中?
我有一个简单的命令行Java应用程序的疑问.
所以我有这个命令行应用程序,它由Main类中定义的main()方法启动.
像往常一样,这个main()方法定义了这个签名:
public static void main(String[] args) {
Run Code Online (Sandbox Code Playgroud)
所以它的返回类型是无效的.所以它应该意味着它不会返回任何价值.
但是为什么当它的执行正确终止时我将这条消息发送到IntelliJ控制台?
Disconnected from the target VM, address: '127.0.0.1:54090', transport: 'socket'
Process finished with exit code 0
Run Code Online (Sandbox Code Playgroud)
究竟代表退出代码0的是什么?
我认为这意味着程序已正确完成其执行而不会产生任何错误.
所以现在我有以下两个疑问:
如果确实如果我的main()方法返回void会发生什么?
如果我的应用程序以错误结束,如何返回不同的退出代码?是否存在标准退出代码值以结束错误?
TNX
我有一个单线程应用程序,如果出现问题,应将DOS错误级别设置为非零值.抛出RuntimeException或使用System.exit(非零)更好吗?我不需要堆栈跟踪,我不希望这个应用程序被扩展/重用.这两个选项有什么区别?
是否有解决当前对象实例的解决方案?
我正在寻找一些看起来像的东西:
class KillMe {
....
public void destroy() {
this.getObject = null //this is only for demonstrate my idea
}
....
}
Run Code Online (Sandbox Code Playgroud) 当我们在学校学习C++时,我们的教授会告诉我们return 0;
在主函数的最后一行代码中写一下,它被认为是一个很好的编程实践.
在Java中,我意识到有些人System.exit(0);
在main方法的最后一行写道.
然而,在C++中,如果我使用exit(0);
我受到我的教授的惩罚,因为(在学校)进行程序编程,我们应该让程序流到主要结束并让程序自然停止.
我的问题:Java是否System.exit(0);
与C++相似return 0;
?(或者它与C++类似exit(0)
)
System.exit(0)
在不需要的时候在java中使用是不好的做法(即:在main方法的最后一行写它)?
在Java中杀死进程的最佳方法是什么?
获取PID然后用它杀死它Runtime.exec()
?
用destroyForcibly()
吗?
这两种方法有什么区别,还有其他解决方案吗?
java ×9
exit-code ×3
process ×2
windows ×2
batch-file ×1
c++ ×1
cmd ×1
command-line ×1
destroy ×1
eclipse ×1
errorlevel ×1
exit ×1
jvm ×1
kill ×1
object ×1
opendaylight ×1
return ×1
runtime.exec ×1