使用Vagrant将Java 1.6升级到1.8

3

我在我的机器上安装了vagranthashicorp-precise32虚拟机。安装的是Java 1.6,而我需要Java 1.8。我是否需要安装另一个虚拟机?如何获取Java 1.8?


该图像可能包含过时的Java版本,请编写Chef或其他配置工具来将其升级到Java 8,或创建一个带有Java 8的新镜像并重复使用它。 - jmj
所给答案基于Ubuntu个人软件包存档(PPA)以获取Java 8。还有一个gist与Vagrant provision block,基于同样的PPA。 - avandeursen
考虑升级到14.04或16.04镜像。 - Thorbjørn Ravn Andersen
2个回答

8
在你的Vagrantfile中添加以下行,它将安装Java 8(接受许可证)并在你的客户机虚拟机中设置环境变量:
sudo apt-get install -y software-properties-common python-software-properties
echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | sudo /usr/bin/debconf-set-selections
sudo add-apt-repository ppa:webupd8team/java -y
sudo apt-get update
sudo apt-get install oracle-java8-installer
echo "Setting environment variables for Java 8.."
sudo apt-get install -y oracle-java8-set-default

此外,您可以参考使用Vagrant创建和配置虚拟机

谢谢Arpit,它起作用了。但是我仍然得到java.lang.UnsupportedClassVersionError,Unsupported major.minor version 52.0。Tomcat是否仍在使用旧版本?有什么想法吗? - P.K
检查你的Tomcat和JAVA_HOME版本,或者参考我的文章,你将得到答案。 - Arpit Aggarwal
JAVA_HOME为空,现在默认为1.8。此外,Tomcat正在选择默认值,但仍然出现异常。顺便问一下,我在哪里可以找到你的文章?抱歉,我是新手。 - P.K
您可以从主机登录到Tomcat管理器,并检查它正在使用哪个版本的JAVA和Tomcat,更多信息请参考:http://www.dzone.com/articles/vagrant - Arpit Aggarwal
您的文章非常有帮助。非常感谢。我已经搞定了。我使用Gradle在虚拟机上构建了WAR文件,它可以正常工作。 - P.K

1

这取决于您在虚拟机中安装的操作系统,您安装的是Ubuntu,因此您需要按照这里的说明操作。

$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java8-installer
$ sudo apt-get install oracle-java8-set-default

它将安装Java 8,但会要求用户接受权限。当您使用Vagrant时,您无法控制它。 - Arpit Aggarwal
@Arpit 启动一个 Vagrant 虚拟机,ssh 进去,然后运行这些命令。它会成功地安装。 - Epicblood
如果我想再次从同一个Vagrant文件创建虚拟机,那么我需要重新安装Java 8(如果需要),对吗? - Arpit Aggarwal
@arpit 如果你想将虚拟机移动到另一台机器上,那么是的,你需要编辑Vagrant文件。 - Epicblood
@Epicblood 谢谢你的帮助,我非常感激。 - P.K

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接