如何为Eclipse RCP应用程序设置错误代码(ErrorLevel)

时间:2015-05-19 10:36:19

标签: java eclipse eclipse-rcp rcp errorlevel

我们通过shell脚本调用Eclipse RCP应用程序。如果Eclipse RCP应用程序异常退出,则ErrorLevel未正确设置,因为shell无法识别Eclipse RCP应用程序的返回代码。

有关如何通过Eclipse RCP应用程序设置%ErroLevel%的任何想法吗?

3 个答案:

答案 0 :(得分:2)

这应该很简单:只需添加System.exit(<your error code>);

即可

批处理文件示例:

java -classpath "%~dp0dist\StackOverflow3.jar" retvalue.RetValue
echo batch layer: %ErrorLevel%
pause

示例java源:

package retvalue;

public class RetValue {

    public static void main(String[] args) {
        System.out.println("returning with 5"); 
        System.exit(5);
    }
}

控制台输出:

C:\daten\chris\source\netbeans\StackOverflow3>java -classpath "C:\daten\chris\source\netbeans\StackOverflow3\dist\StackOverflow3.jar" retvalue.RetValue
returning with 5

C:\daten\chris\source\netbeans\StackOverflow3>echo batch layer: 5
batch layer: 5

C:\daten\chris\source\netbeans\StackOverflow3>pause
Drücken Sie eine beliebige Taste . . .

答案 1 :(得分:1)

结束申请时,必须使用System.Exit(value)进行设置。因此,一种方法是控制使程序异常完成的异常,然后使用它结束程序以返回errorlevel所需的值。

您可以使用它返回所需的int值。例如:

// If I had IOException, then
System.exit(3);

参考:System.exit

修改:您对该号码的问题附带%errorlevel%值,请使用ERRORLEVEL,例如:

if ERRORLEVEL 0 (
  echo All ok
) else (
  echo An error
)

请注意,ERRORLEVEL会比较%errorlevel%的值是否等于或高于您给予的值。

我为什么这么说?我遇到了与以前相同的问题,%errorlevel%似乎比必须时更新。我不知道原因,但我可以告诉你,如果你通过ERRORLEVEL检查它的值,你会检查这个值是否正确。

您必须检查更高的值 之前返回,因为ERRORLEVEL会检查该值是否相等。

参考:%errorlevel% is not ERRORLEVEL

答案 2 :(得分:0)

您可以使用System.exit(...)调用设置进程存在时JVM返回的错误代码。例如:

System.exit(10);

这将以退出代码10结束JVM进程。