11

是否有人提出了一个良好的配置脚本来使用存储在.ebextensions中的配置文件将Oracle Java 1.7安装到Elastic Beanstalk实例中。我使用的弹性魔豆的tomcat7版本,我能够使用带有yum来安装OpenJDK的以下内容:如何在Amazon Elastic Beanstalk实例中安装Oracle Java 7

packages: 
    yum: 
    java-1.7.0-openjdk: [] 
    java-1.7.0-openjdk-devel: [] 

commands: 
    use_java7: 
    command: alternatives --set java /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java 

我想如何过使用甲骨文的Java 1.7不是的OpenJDK和百胜并没有在它的回购本身。

回答

10

尝试这个配置文件

files: 
    "/home/ec2-user/install-oracle-jdk.sh": 
    mode: "000755" 
    owner: ec2-user 
    group: ec2-user 
    content: | 
     #!/usr/bin/env bash 
     wget -O jdk-7u25-linux-x64.rpm --no-cookies --no-check-certificate --header 'Cookie:gpw_e24=http://www.oracle.com; oraclelicense=accept-securebackup-cookie' 'http://download.oracle.com/otn-pub/java/jdk/7u51-b13/jdk-7u51-linux-x64.rpm'  
     rpm -Uvh /home/ec2-user/jdk-7u25-linux-x64.rpm 
     alternatives --install /usr/bin/java java /usr/java/default/bin/java 3 
     alternatives --set java /usr/java/default/bin/java 

commands: 
    execute-install-oracle-jdk-script: 
    command: ./install-oracle-jdk.sh 
    cwd: /home/ec2-user 
+1

这不再适用,需要更新下载链接和cookie。它随着新的Java 8发布而改变。 – tbraun

+1

它应该再次:) – study

+0

伟大的工作!非常感谢!我懒得找到这个新的链接。但不要懒得将rpm转移到我自己的CDN服务器,现在我不需要担心Oracle会再次更改他们的下载系统。 – tbraun

1

你可以交替安装它,你通常会做和使用AMI作为您的AMI创建新的EC2实例。

0

接受的答案不再有效,它的过时。这对我有效:

# Install Oracle JDK 
rpm --erase --nodeps java-1.6.0-openjdk java-1.6.0-openjdk-devel 
rpm -Uvh .ebextensions/jdk-6u45-linux-amd64.rpm 
/usr/sbin/alternatives --install /usr/bin/java java /usr/java/default/bin/java 3 
/usr/sbin/alternatives --set java /usr/java/default/bin/java 
/usr/sbin/alternatives --install /usr/bin/java_sdk java_sdk /usr/java/default/bin/java 3 
/usr/sbin/alternatives --set java_sdk /usr/java/default/bin/java 

这是用于java 6,因为我需要它。另外,从oracle下载的jdk实际上是一个bin文件(oracle的自定义sh脚本提取器),所以我所做的是我从oracle下载bin文件,将其解压缩以获取RPM,然后将RPM包含在ebextensions中。

只需包含该sh脚本即可在ebextensions配置文件中运行(如果您不确定,请使用Google ebextenions配置)。

希望这有助于某人。

相关问题