Bash中没有Java的退出代码
我有一个bash文件:Bash中没有Java的退出代码,java,bash,Java,Bash,我有一个bash文件: REPOS="$1" TXN="$2" SVNLOOK=/usr/bin/svnlook LOGMSG=$($SVNLOOK log -t "$TXN" "$REPOS" | grep "[a-zA-Z0-9]") echo "\n$LOGMSG" >> /dev/tty javac ~/Desktop/SomeClass.java java ~/Desktop/SomeClass $LOGMSG STATUS=$? echo "\n" >&g
REPOS="$1"
TXN="$2"
SVNLOOK=/usr/bin/svnlook
LOGMSG=$($SVNLOOK log -t "$TXN" "$REPOS" | grep "[a-zA-Z0-9]")
echo "\n$LOGMSG" >> /dev/tty
javac ~/Desktop/SomeClass.java
java ~/Desktop/SomeClass $LOGMSG
STATUS=$?
echo "\n" >> /dev/tty
echo $STATUS >> /dev/tty
exit 0
它调用这个java文件:
public class SomeClass {
public static void main(String[] args) {
String result = "";
for (String s: args) {
result = result + " " + s;
}
String regex = ".*\\bHello\\b.*";
if(result.matches(regex)) {
System.out.println("It matches");
System.exit(0);
} else {
System.out.println("It does not match");
System.exit(42);
}
}
}
我从未在Java文件中使用退出代码
1
退出过。但是,当我回显bash文件中的状态时,它总是向我显示“1”,这背后的原因是什么 错误代码是因为Java无法启动。您没有指定要正确运行的类
如果我的桌面目录中有一个类,我需要使用以下命令从另一个目录运行它:
java -cp ~/Desktop SomeClass
假设SomeClass
没有指定包。如果您有包org.foo.bar代码>在文件顶部,您需要使用
java -cp ~/Desktop org.foo.bar.SomeClass
非常确定Someclass
是一个打字错误(小C);而且,这不是您为Java指定类的方式(您需要完全限定的类名,而不是路径;可能还需要一个类路径)!我的外壳中有42个退出代码……这不是我的问题issue@AndyTurner请你再澄清一下好吗。我还是有同样的问题。