【发布时间】:2016-11-01 00:19:12
【问题描述】:
#!/bin/bash
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk
CLASSPATH=/Users/sunny/CronTest/out/production/CronTest
$JAVA_HOME/Contents/Home/bin/java -cp $CLASSPATH ".:/Users/sunny/Downloads/sqlite-jdbc-3.8.11.2.jar" sample.Main
exit 0
Sqlite jar 文件在/Users/sunny/Downloads/sqlite-jdbc-3.8.11.2.jar
编译好的java类文件在/Users/sunny/CronTest/out/production/CronTest/sample/Main.class
我已将 cron 作业设置为每 1 分钟安排一次。 Java 类正在执行,但我收到了 java.lang.ClassNotFoundException: org.sqlite.JDBC
脚本中的相同命令正在终端中运行。
我的问题是如何正确添加 jar 文件以从 shell 脚本执行。
【问题讨论】:
-
尝试将两个类路径合并为一个,然后将其传递给 java
-
看起来您在 $CLASSPATH 之后缺少一个“:”。应该是
$CLASSPATH:".:/Users/sunny/Downloads/sqlite-jdbc-3.8.11.2.jar" -
嗨 @Frank 和 Sanjeev 我尝试了这两种方法,但仍然无法正常工作。
-
抱歉,目前我没有 Unix 系统可以尝试。如果在第 3 行构建完整的类路径会怎样?
CLASSPATH=/Users/sunny/CronTest/out/production/CronTest:.:/Users/sunny/Downloads/sqlite-jdbc-3.8.11.2.jar,然后在您的通话中只使用-cp $CLASSPATH? -
不能在 shell 脚本中工作。但是从根目录在终端中完美运行。
标签: java sqlite shell jar crontab