Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash中没有Java的退出代码_Java_Bash - Fatal编程技术网

Bash中没有Java的退出代码

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

我有一个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" >> /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请你再澄清一下好吗。我还是有同样的问题。