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

时间:2014-05-27 16:19:17

标签: openshift java-8

我知道WildFly cartridge doesn't have JDK support,但我能以某种方式在实验性DIY墨盒上安装Java 8吗? java-1.7.0是/ usr / lib中的最新版本。

5 个答案:

答案 0 :(得分: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"

感谢this cartridge

正如@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

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

export JAVA_HOME=/etc/alternatives/java_sdk_1.8.0
export PATH=$JAVA_HOME/bin:$PATH

答案 1 :(得分: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

答案 2 :(得分: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

答案 3 :(得分:3)

如果你将Maven与DIY-Cartridge一起使用,这不起作用。

如果你看看盒子里的“/ usr / bin / mvn”中的mvn命令,你会发现mvn在执行时会重置$ JAVA_HOME。

#!/bin/sh
prog=$(basename $0)
export JAVA_HOME=/usr/lib/jvm/java
export JAVACMD=$JAVA_HOME/bin/java
export M2_HOME=/usr/share/java/apache-maven-3.0.4
exec $M2_HOME/bin/$prog "$@"

<强>更新

经过一番头疼之后,我终于能够找到如何在DIY盒式磁带上使用Maven运行java8应用程序。我们知道usr / bin上的mvn可执行文件不好,我们只需下载自己的。一旦我们有自己的Maven版本尊重JAVA_HOME,那么我们就可以了。这是我的action_hooks ......

<强> pre_start

#!/bin/bash
cd $OPENSHIFT_DATA_DIR

#Download Maven If not already installed
if [ ! -d apache-maven-3.3.3 ]; then
  wget http://www.eu.apache.org/dist/maven/maven-3/3.3.3/binaries/apache-maven-3.3.3-bin.tar.gz
  tar -zxf apache-maven-3.3.3-bin.tar.gz
fi

#Download Java8 If not already installed
if [ ! -d jdk1.8.0_05 ]; then
  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
fi

开始

export PATH=$OPENSHIFT_DATA_DIR/jdk1.8.0_05/bin:$PATH
export JAVA_HOME="$OPENSHIFT_DATA_DIR/jdk1.8.0_05"


cd $OPENSHIFT_DATA_DIR
echo -e  "<settings>\n <localRepository>$OPENSHIFT_DATA_DIR</localRepository>\n</settings>\n" > settings.xml

$OPENSHIFT_DATA_DIR/apache-maven-3.3.3/bin/mvn -f $OPENSHIFT_REPO_DIR/pom.xml clean package -s $OPENSHIFT_DATA_DIR/settings.xml

nohup java -jar $OPENSHIFT_REPO_DIR/target/**YOUR_FAT_JAR**.jar > $LOG 2>&1 &

希望这可以帮助那些像我一样花费很多时间的人:)

答案 4 :(得分:0)

默认的wildfly 8(8.2.1)盒式磁带现在支持JDK8开箱即用。