运行shell脚本时出错

时间:2009-03-05 04:27:17

标签: 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

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

以下是shellscript:

cd ../../classes
export CLASSPATH=$CLASSPATH:../vismine.jar:../mysql-connector-java-5.1.6-bin.jar
java -Xm500m vists.VisTS ../ConfigFiles/dataCenterMySQL-log.xml
cd..

需要帮助。

2 个答案:

答案 0 :(得分:2)

当你应该有CD时你在第5行有... ..(注意空格)

答案 1 :(得分:1)

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

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

确保第一个cd也可行是明智的:

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

原则上,您可以通过编写单独的Java命令导出CLASSPATH:

CLASSPATH=$CLASSPATH:../vismine.jar:../mysql-connector-java-5.1.6-bin.jar \
java -Xm500m vists.VisTS ../ConfigFiles/dataCenterMySQL-log.xml

然而,这次不值得,因为无论如何它会分散两行代码。