带有 jar 文件的 Crontab java.lang.ClassNotFoundException
Crontab java.lang.ClassNotFoundException with a jar file
#!/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 class 文件在 /Users/sunny/CronTest/out/production/CronTest/sample/Main.class
并且我已将 cron 作业设置为每 1 分钟安排一次。 Java class 正在执行,但我正在执行 java.lang.ClassNotFoundException: org.sqlite.JDBC
脚本中的相同命令在终端中运行。
我的问题是如何正确添加 jar 文件以从 shell 脚本执行。
您的 $CLASS PATH
和 ".:/Users/sunny/Downloads/sqlite-jdbc-3.8.11.2.jar"
之间似乎有一个 space,并且缺少一个冒号 (:)。
请尝试使用 export
进行以下操作:
export CLASSPATH=.:/Users/sunny/CronTest/out/production/CronTest:/Users/sunny/Downloads/sqlite-jdbc-3.8.11.2.jar
并使用 -cp $CLASSPATH
调用 java 命令。
如果还是不行,请直接用-cp
试试:
$JAVA_HOME/Contents/Home/bin/java -cp ".:/Users/sunny/CronTest/out/production/CronTest:/Users/sunny/Downloads/sqlite-jdbc-3.8.11.2.jar" sample.Main
#!/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 class 文件在 /Users/sunny/CronTest/out/production/CronTest/sample/Main.class
并且我已将 cron 作业设置为每 1 分钟安排一次。 Java class 正在执行,但我正在执行 java.lang.ClassNotFoundException: org.sqlite.JDBC
脚本中的相同命令在终端中运行。
我的问题是如何正确添加 jar 文件以从 shell 脚本执行。
您的 $CLASS PATH
和 ".:/Users/sunny/Downloads/sqlite-jdbc-3.8.11.2.jar"
之间似乎有一个 space,并且缺少一个冒号 (:)。
请尝试使用 export
进行以下操作:
export CLASSPATH=.:/Users/sunny/CronTest/out/production/CronTest:/Users/sunny/Downloads/sqlite-jdbc-3.8.11.2.jar
并使用 -cp $CLASSPATH
调用 java 命令。
如果还是不行,请直接用-cp
试试:
$JAVA_HOME/Contents/Home/bin/java -cp ".:/Users/sunny/CronTest/out/production/CronTest:/Users/sunny/Downloads/sqlite-jdbc-3.8.11.2.jar" sample.Main