【发布时间】:2013-09-10 17:13:11
【问题描述】:
我在 linux 机器上运行几个 jar 时遇到了一些麻烦。基本上,我收到一个错误,说它找不到我的主 jar 的主类。该类是明确存在的,因此它必须是一个类路径问题。 我对 linux 不太了解,所以我正在寻找一些关于我可能遗漏什么的建议。
首先,我在用户 bash_profile 中设置类路径;添加所有需要的罐子,用 : 分隔符分隔。然后我导出类路径。
然后,在我用来调用主 jar 的 shell (ksh) 脚本中,我还存储了类路径并使用 -cp 在命令中调用它
看起来像:
TEST_ROOTDIR = /Test/app
CLASSPATH=$CLASSPATH:${TEST_ROOTDIR}/lib/myjar.jar
...
export CLASSPATH
CMD_STRING="java -Xms200m -Xmx200m -XX:MaxPermSize=200m -verbose -cp $CLASSPATH"
CMD_STRING="$CMD_STRING <main classpath in jar>"
nohup $CMD_STRING > $OUTPUT_FILE
输出文件显示所有 jre jar 正在执行,然后加载该 jar 并为主类抛出类未找到异常。
我很困惑,任何帮助将不胜感激
【问题讨论】:
-
我宁愿从没有所有花哨的
nohup和变量的东西开始;首先尝试让它在 cmdline 上运行,例如-Xms200m -Xmx200m -XX:MaxPermSize=200m -verbose -cp /Test/app/lib/myjar.jar myjar。一旦成功,将其放入脚本中。 -
显然 cmdline 应该包含 java-interpreter 本身:
java -Xms200m -Xmx200m -XX:MaxPermSize=200m -verbose -cp /Test/app/lib/myjar.jar myclass(和myclass是你的<main classpath in jar>- 你还没有给出)
标签: java linux classpath java-7 .bash-profile