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

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

最佳答案

这应该很简单:只需添加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 . . .

08-03 22:31