在OpenShift的DIY盒式磁带上支持JDK 8

jua*_*osl 19 java-8 openshift

我知道WildFly盒式磁带没有JDK支持,但是我能以某种方式在实验性DIY盒式磁带上安装Java 8吗?java-1.7.0是/ usr/lib中的最新版本.

jua*_*osl 29

如果您需要特定的JDK版本,可以下载它并设置环境变量:

cd $OPENSHIFT_DATA_DIR
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u5-b13/jdk-8u5-linux-x64.tar.gz
tar -zxf jdk-8u5-linux-x64.tar.gz
export PATH=$OPENSHIFT_DATA_DIR/jdk1.8.0_05/bin:$PATH
export JAVA_HOME="$OPENSHIFT_DATA_DIR/jdk/jdk1.8.0_05"
Run Code Online (Sandbox Code Playgroud)

感谢这个墨盒.

正如@youssef所指出的,你还应该将这些行添加到.openshift/action_hooks/start:

export JAVA_HOME="$OPENSHIFT_DATA_DIR/jdk/jdk1.8.0_05"
export PATH=$OPENSHIFT_DATA_DIR/jdk1.8.0_05/bin:$PATH
Run Code Online (Sandbox Code Playgroud)

更新:现在OpenShift添加了替代运行时,您可以跳过下载自己的:

export JAVA_HOME=/etc/alternatives/java_sdk_1.8.0
export PATH=$JAVA_HOME/bin:$PATH
Run Code Online (Sandbox Code Playgroud)


Sat*_*jan 19

Java 8现在默认使用DIY.您只需要在/.openshift/action_hooks/start.sh中设置PATH,如下所示

export JAVA_HOME=/etc/alternatives/java_sdk_1.8.0
export PATH=$JAVA_HOME/bin:$PATH
Run Code Online (Sandbox Code Playgroud)

  • 我有三个地方用于`action_hooks`哪一个是正确的?`./ app-root/runtime/repo/.openshift/action_hooks``./ app-deployments/2015-09-23_11-04-35.405/repo/.openshift/action_hooks`` ./jbossews/template/.openshift/ action_hooks`.请指导 (2认同)

Ale*_*ian 9

嗨我想更新上面的答案,因为我有同样需要更新我的Vert.x应用程序的JDK.因为它完全用Java8编写(Vert.x代码看起来好多了)我开始尝试使用Openshift,直到我遇到了juan报告的问题.

但是我必须修复一些东西并更新到JDK1.8u20:

// connect with SSH to your application, then
cd $OPENSHIFT_DATA_DIR 
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u20-b26/jdk-8u20-linux-x64.tar.gz
tar -zxf jdk-8u20-linux-x64.tar.gz
export PATH=$OPENSHIFT_DATA_DIR/jdk1.8.0_20/bin:$PATH
export JAVA_HOME=$OPENSHIFT_DATA_DIR/jdk1.8.0_20/

// then depending on your cartridge you need to exec the following command
echo $JAVA_HOME > $OPENSHIFT_{cartridge}_DIR/env/JAVA_HOME

// in my case was
// echo $JAVA_HOME > $OPENSHIFT_VERTX_DIR/env/JAVA_HOME
// for Wildfly I presume it is
// echo $JAVA_HOME > $OPENSHIFT_WILDFLY_DIR/env/JAVA_HOME
Run Code Online (Sandbox Code Playgroud)

  • 最后一个echo命令给了我一个被拒绝的权限 (3认同)