如何使用 OPENSHIFT_DATA_DIR 环境变量在 Openshift 应用程序中引用自定义文件

How to reference a custom file in Openshift application using OPENSHIFT_DATA_DIR environment variable

我使用以下墨盒创建了一个名为 "java" 的 openshift 应用程序:

我已将应用程序拉入我的本地目录并添加了目录 "lib" 和我的可执行文件 "testapp.jar".

..\java\src\main\webapp\lib\testapp.jar

我添加了一个名为 "java"

的 'minutely' cron 作业文件

..\java.openshift\cron\minutely\java

我成功提交了目录和 cron 文件。 但是 cron 作业始终无法找到并执行 testapp.jar.

我尝试了以下两个脚本:

java -jar $OPENSHIFT_HOMEDIR/src/main/lib/testapp.jar

java -jar $OPENSHIFT_REPO_DIR/lib/testapp.jar

都没有用,我不断收到一条消息说 testapp.jar 找不到。

很明显,我的参考是不正确的。 显然,我应该使用 OPENSHIFT_DATA_DIR 因为它是唯一的持久目录。

我想寻求有关 cron 脚本的帮助,因为我在引用(执行)我的 testapp.jar.

时运气不佳

任何人都可以给我一个示例,说明如何使用 OPENSHIFT_DATA_DIR 环境变量正确引用 testapp.jar 吗?

我最终使用了 $OPENSHIFT_REPO_DIR 环境变量,它引用了本地机器上应用程序的根目录。是包含.git和.openshift子目录的目录。

我创建了以下分钟的 cron 文件:

..\java.openshift\cron\minutely\java

cd $OPENSHIFT_REPO_DIR java -jar
$OPENSHIFT_REPO_DIR/src/main/webapp/lib/testapp.jar

现在我可以 运行 一个 jar 文件并安排执行该 jar 文件。

一个补充说明。确保使用 jre 1.7 编译代码,因为我遇到了异常:

Exception in thread "main" java.lang.UnsupportedClassVersionError: App : Unsupported major.minor version 52.0 when I compiler the code using jre 1.8.

Java OpenShift 使用 OpenJDK 1.7。

source: OpenShift 分别对 Tomcat 6 和 7 使用 JBoss EWS 1.0 和 2.0。 EWS 是 Apache Tomcat 的加固和 Red Hat 支持版本。两个版本都使用 Java OpenJDK 1.7.