【问题标题】:How to run java code from shell script on linux如何在 Linux 上从 shell 脚本运行 java 代码
【发布时间】:2014-11-20 09:35:09
【问题描述】:

我想为我的 java 代码设置一个 cron 作业,我已经从项目目录尝试过这个

    java -classpath .:/home/project/lib/* pkg_name.my_code

它工作正常,但是我不知道如何从任何其他目录运行它[比如在脚本中] 我试图像这样在类路径中添加目录(已编译类)

    java -classpath .:/home/project/lib/*;/home/project/pkg_name/* pkg_name.my_code

也试过

    java -classpath ".:/home/project/lib/*;/home/project/pkg_name/*" pkg_name.my_code

但它给出了错误:

**错误:无法找到或加载主类 pkg_name.my_code **

谁能帮帮我?

【问题讨论】:

  • 你有一个jar文件吗?一个类文件?还是.java 文件?
  • 尝试删除通配符。只需输入包含包的目录名称,或 jar 的全名(目录+文件名)即可。例如:-classpath /home/project:/home/project/lib/someJar.jar:/home/project/lib/someOtherJar.jar
  • 在 lib 中我有 jars,并且在我想运行的 pakg_name 类(已编译的)文件下
  • @Benjamin 试过但没用
  • 假设你的类名是 my_code 在包 pkg_name 中,以下应该可以工作:java -classpath /home/project:/home/project/lib/someJar.jar:/home/project/lib/someOtherJar.jar pkg_name.my_code

标签: java linux shell classpath sh


【解决方案1】:

如果您想从另一个目录运行您的项目,那么您需要将您的项目包含在类路径中。所以你可以这样做

java -classpath ".:/home/project/lib/*:/home/project" pkg_name.my_code

例如:

java -classpath ".:/home/test/runjavafromanotherdirectory/lib/*:./runjavafromanotherdirectory" com.test.Main

您的一个错误是您使用的是; 而不是:

【讨论】:

    猜你喜欢
    • 2018-09-08
    • 2010-10-06
    • 2014-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多