gpt4 book ai didi

java - 在 openshift 中从 cron 运行 java 类文件

转载 作者:行者123 更新时间:2023-12-01 22:26:19 28 4
gpt4 key购买 nike

我正在对 openshift 中的任务运行 cron 作业,这是我的脚本

ROOT_DIR='$OPENSHIFT_REPO_DIR'

if [ $(($minute % 2)) -eq 0 ]; then
java OPENSHIFT_REPO_DIRsrc.main.java.com.fs.sstore.communicator.scheduler.RechargeScheduler
fi

server.log 上发生以下错误:

Could not find or load class.

我正在尝试运行单个java文件。

任何帮助将不胜感激。

最佳答案

嗯,您可能需要指定它的CLASSPATH。使用-cp。从命令行试试这个:

java -cp "$OPENSHIFT_REPO_DIR" src.main.java.com.fs.sstore.communicator.scheduler.Recharg‌​eScheduler

或者转到类所在的基本位置(我猜$OPENSHIFT_REPO_DIR),然后再次运行:

cd $OPENSHIFT_REPO_DIR
java -cp . src.main.java.com.fs.sstore.communicator.scheduler.Recharg‌​eScheduler

顺便说一下,请确保 Recharg‌​eScheduler 的包是 src.main.java.com.fs.sstore.communicator.scheduler
奇怪的是它以 src 开头。它通常表示其源位置,但它不是包的一部分。

====更新====

让我们举一个简单的例子。想象一个这样的类,其 StackOverflow.java 文件位于 /home/user/workspace/XTest/src/test/StackOverflow.java:

请注意,在本例中,包是 test不是 src.test

package test;

public class StackOverflow {

public static void main(String[] args) {
System.out.println("Hello world!");
}
}

有多种方法可以从命令行运行此类:

  1. 在没有Main-Class条目的情况下使用Jar:

    创建 JAR:

    cd /home/user/workspace/XTest/src //if its .class is in ./test/StackOverflow.class
    jar cvf /home/user/jar/stackOverflow.jar test/StackOverflow.class

    生成jar后,就可以运行:

    cd /home/user/jar
    java -cp stackOverflow.jar test.StackOverflow
  2. 将 Jar 与 Main-Class 条目一起使用:

    使用如下条目创建 MANIFEST.MF 文件:

    Manifest-Version: 1.0
    Main-Class: test.StackOverflow

    然后创建 JAR:

    cd /home/user/workspace/XTest/src //if its .class is in ./test/StackOverflow.class
    jar cvfm /home/user/jar/stackOverflow.jar MANIFEST.MF test/StackOverflow.class

    运行:

    cd /home/user/jar
    java -jar stackOverflow.jar
  3. 不使用jar

    转到test包所在的位置,其内容下是已编译的类

    cd /home/user/workspace/XTest/src

    如果您在此处列出内容,您应该会看到类似以下内容:

    -rw-r--r-- 1 User group 5123 Mar 3 11:01 test/StackOverflow.class 

    运行:

    java -cp . test.StackOverflow 

现在,您可以从任何其他位置运行这些示例。
例如,在情况 3 中,可以运行:

java -cp /home/user/workspace/XTest/src/. test.StackOverflow 

或者情况 2:

java -jar /home/user/jar/stackOverflow.jar 

希望您可以将此示例改编为您的示例。

关于java - 在 openshift 中从 cron 运行 java 类文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28717456/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com