Shell 如何在下面的脚本中设置CPATH的值。脚本无法识别下面脚本第2行中的类路径。
我必须执行下面的脚本Shell 如何在下面的脚本中设置CPATH的值。脚本无法识别下面脚本第2行中的类路径。,shell,classpath,ksh,Shell,Classpath,Ksh,我必须执行下面的脚本 export CPATH="cpath=.:/mdcode/mtrxmdsb2/WaferChecks/bin/WaferChecksFile.jar" /sail/lpp/IBM/Java/1.6.0/jre/bin/java \ -classpath "$CPATH" com/ibm/md/waferchecks/ReadPasswordMain $1 $2 $3 脚本接受3个参数。但是,当我从cmd提示符运行脚本时,我得到以下错误: Exception in
export CPATH="cpath=.:/mdcode/mtrxmdsb2/WaferChecks/bin/WaferChecksFile.jar"
/sail/lpp/IBM/Java/1.6.0/jre/bin/java \
-classpath "$CPATH" com/ibm/md/waferchecks/ReadPasswordMain $1 $2 $3
脚本接受3个参数。但是,当我从cmd提示符运行脚本时,我得到以下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: com.ibm.md.wafercheck
s.ReadPasswordMain
Caused by: java.lang.ClassNotFoundException: com.ibm.md.waferchecks.ReadPassword
Main
at java.net.URLClassLoader.findClass(URLClassLoader.java:421)
at java.lang.ClassLoader.loadClass(ClassLoader.java:652)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:346)
at java.lang.ClassLoader.loadClass(ClassLoader.java:618)
Could not find the main class: com/ibm/md/waferchecks/ReadPasswordMain. Program
will exit.
我知道这是类路径变量设置不正确的问题。我想我在某个地方的语法有问题。谁能帮忙吗。谢谢
export CPATH=".:/mdcode/mtrxmdsb2/WaferChecks/bin/WaferChecksFile.jar"
另外,您不必将shell变量放在引号中。从赋值行中删除
导出CPATH=
。这迫使java查找名为cpath=。
的文件或目录,而不是
#! /bin/bash
jarfile=/mdcode/mtrxmdsb2/WaferChecks/bin/WaferChecksFile.jar
cpath=.:${jarfile?}
您不需要导出,因为您将$cpath作为参数传递给java
-classpath
选项
顺便说一句,您可以在调用java之前执行一些检查以消除 以下行中的一些小错误:
(< ${jarfile?}) || exit # abort on missing or unreadable file[*]
#! /bin/bash
jarfile=/mdcode/mtrxmdsb2/WaferChecks/bin/WaferChecksFile.jar
cpath=.:${jarfile?}
(< ${jarfile?}) || exit
/sail/lpp/IBM/Java/1.6.0/jre/bin/java \
-classpath "${cpath?}" \
com/ibm/md/waferchecks/ReadPasswordMain $1 $2 $3