【问题标题】:Setting default System.exit codes in Java?在 Java 中设置默认 System.exit 代码?
【发布时间】:2010-01-29 17:09:15
【问题描述】:

我有一个运行 jar 文件并使用 System.exit 代码作为返回值的 C# 应用程序。控制台窗口显示为这个 jar 的一部分,如果用户关闭它(从而终止 jar),它会返回退出代码 143。问题是如果 jar 成功完成,143(或任何正整数)可能是有效的退出代码。

我需要一种方法来手动将 System.exit 代码设置为负整数。在 C# 应用程序中将 143 视为异常是不可能的。

【问题讨论】:

    标签: java console system.exit


    【解决方案1】:

    如 Diego Dias answer

    参数用作状态码;按照惯例,非零状态码表示异常终止。

    如果您真的想忽略这一点,并且 Java 和 C# 应用程序都在您手中,一个简单的解决方法是在 jar 完成时将 1000 添加到 Java 中的 System.exit 返回值。

    您的 C# 应用程序将通过返回码 >= 1000 识别成功执行并再次减去它。 143 低于 1000,因此出现错误。

    【讨论】:

    • 因为我同时拥有 Java 和 C# 代码,所以这是一个微不足道的修复。表明有时最简单的解决方案是最好的。
    【解决方案2】:

    根据java documentation可以使用System.exit(int n),所以只要把一个负数作为参数,同样按照约定,非零状态码表示异常终止。

    【讨论】:

    • 如果 jar 完成,我已经能够使用 System.exit() 返回正确的代码,但如果用户过早终止 jar,我无法控制返回的内容。
    • 所以你的问题是另一个问题......你需要在你的应用程序上识别一个“关闭或退出”事件并抛出一个可以使用 system.exit 的异常
    • 我也想过使用负数,但有些系统无法处理(例如 OSX)
    猜你喜欢
    • 1970-01-01
    • 2018-02-27
    • 1970-01-01
    • 2019-10-29
    • 2014-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-02
    相关资源
    最近更新 更多