【发布时间】:2016-05-18 20:40:41
【问题描述】:
我有一个非常简单的 Java 类,除了:
public class TestMain {
public static void main(String[] args) {
System.out.println("Running!");
System.exit(1111);
}
}
,打包到TestOSX.jar 文件中。
虽然在 Windows 上我可以运行上面的 sn-p 并显示 %ERRORLEVEL% 具有预期值,但在 OS X 上我会得到不同的结果。
鉴于test.sh 包含:
#!/bin/bash
"/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java" -jar TestOSX.jar
wait $!
updater_exit_val=$?
echo $updater_evit_val
,我总是打印 0。
设置:OS X 10.11.1,Oracle Java 8 u60。
我在这里遗漏了哪些琐碎的细节?
【问题讨论】:
-
echo $updater_evit_val ...?
-
否则将
wait注释掉,看看这是否改变了事情。此外,shell 退出的最大 int 为 255。您的 1111 将是 mod 255(我很确定)。祝你好运。 -
@MadProgrammer - 好吧,这不是那微不足道的,但感谢你抓住它!在 Mac 上的原始脚本中(我从另一个系统发布的)我没有错字。我将保持原来的帖子不变,以便其他人阅读。一旦我可以访问 Mac,我会尽快回复其他人的建议/答案。谢谢你。
-
@shellter:评论等待就可以了。似乎我没有得到在 shell 中运行另一个命令与不同程序之间的区别。关于 mod 255 的观察也很准确。谢谢!
-
@shellter:FWIW,它似乎实际上是模 256。我猜也是 255...