运行shell脚本时出错

运行shell脚本时出错,shell,Shell,我无法找出运行批处理文件时出现的错误 以下是shell脚本: WARNING: error instantiating 'java.util.logging.FileHandler,' referenced by handlers, class not found java.lang.ClassNotFoundException: java.util.logging.FileHandler, at java.lang.Class.forName(libgcj.so.7rh) at j

我无法找出运行批处理文件时出现的错误

以下是shell脚本:

WARNING: error instantiating 'java.util.logging.FileHandler,' referenced by handlers, class not found
java.lang.ClassNotFoundException: java.util.logging.FileHandler,
   at java.lang.Class.forName(libgcj.so.7rh)
   at java.util.logging.LogManager.locateClass(libgcj.so.7rh)
   at java.util.logging.LogManager.createInstance(libgcj.so.7rh)
   at java.util.logging.LogManager.readConfiguration(libgcj.so.7rh)
   at vists.VisTS.main(VisTS.java:64)
Exception in thread "main" java.lang.NullPointerException
   at java.util.logging.Logger.addHandler(libgcj.so.7rh)
   at java.util.logging.LogManager.readConfiguration(libgcj.so.7rh)
   at vists.VisTS.main(VisTS.java:64)
./SampleStartVisTsData.sh: line 5: cd..: command not found

需要帮助。

您有cd。。在第5行,您应该有cd。。(注意空格)

您有cd。。在第5行,您应该有cd。。(请注意空格)

其中一个错误是“
cd..
”命令,如果它不是冗余的,它将需要在“
cd..
”中有一个空格。您的脚本更改目录以在正确的位置运行Java,但在退出之前无需再次更改目录-这是Linux而不是DOS(这是必需的;退出的
cd
不会将您返回到开始的位置)

更改到classes目录,然后期望在上面的目录中找到jar文件,这似乎很奇怪-您确定这是正确的吗

确保第一张
cd
也能正常工作可能是明智的:

cd ../../classes
export CLASSPATH=$CLASSPATH:../vismine.jar:../mysql-connector-java-5.1.6-bin.jar
java -Xm500m vists.VisTS ../ConfigFiles/dataCenterMySQL-log.xml
cd..
原则上,您可以通过编写以下命令单独导出Java命令的类路径:

error(){
    echo "$@" 1>&2
    exit 1
}
cd ../../classes || exit 1
[ -r ../vismine.jar ] || error "did not find vismine.jar"
[ -r ../mysql-connector-java-5.1.6-bin.jar ] ||
    error "did not find mysql-connector-java-5.1.6-bin.jar"
export CLASSPATH=$CLASSPATH:../vismine.jar:../mysql-connector-java-5.1.6-bin.jar
java -Xm500m vists.VisTS ../ConfigFiles/dataCenterMySQL-log.xml

但是,这一次不值得,因为它无论如何都会分布在两行代码上。

其中一个错误是“
cd..
”命令,如果它不是冗余的,它需要在“
cd..
”中留一个空间。您的脚本更改目录以在正确的位置运行Java,但在退出之前无需再次更改目录-这是Linux而不是DOS(这是必需的;退出的
cd
不会将您返回到开始的位置)

更改到classes目录,然后期望在上面的目录中找到jar文件,这似乎很奇怪-您确定这是正确的吗

确保第一张
cd
也能正常工作可能是明智的:

cd ../../classes
export CLASSPATH=$CLASSPATH:../vismine.jar:../mysql-connector-java-5.1.6-bin.jar
java -Xm500m vists.VisTS ../ConfigFiles/dataCenterMySQL-log.xml
cd..
原则上,您可以通过编写以下命令单独导出Java命令的类路径:

error(){
    echo "$@" 1>&2
    exit 1
}
cd ../../classes || exit 1
[ -r ../vismine.jar ] || error "did not find vismine.jar"
[ -r ../mysql-connector-java-5.1.6-bin.jar ] ||
    error "did not find mysql-connector-java-5.1.6-bin.jar"
export CLASSPATH=$CLASSPATH:../vismine.jar:../mysql-connector-java-5.1.6-bin.jar
java -Xm500m vists.VisTS ../ConfigFiles/dataCenterMySQL-log.xml

但是,这一次不值得,因为它无论如何都会扩展到两行代码。

这当然是问题之一。这当然是问题之一。