我正在Ubuntu上运行码头7.6。它为实时交通服务。那个特定版本的码头需要Java 6。
现在,我想在该计算机上安装Java 7。这会搅乱我目前居住的码头实例吗?
另外,是否将更新到Java 7使ubuntu选择它作为默认的jdk,以便在下次调用Java应用程序时使用?如果可能的话,我想:
这将使我能够测试较新版本的jetty(需要Java 7),而不会干扰我的实时安装。
根据您安装Java 6的方式,答案可能会略有不同。
通过.deb
或安装Java时apt-get
,安装脚本通常将利用Debian替代系统。Debian替代系统只是通过在不同位置创建符号链接而在同一系统上具有多个应用程序的多个运行时/版本的简单解决方案。
请注意,如果您是从二进制文件或源代码安装Java的,那么这可能不适用(除非您自己配置了Java)。
要检查java是否在利用替代方法,请运行update-alternatives --list java
。这将返回:
update-alternatives: error: no alternatives for java.
或者
java - auto mode
link currently points to /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java
/usr/lib/jvm/java-6-openjdk-i386/jre/bin/java - priority 1061
slave java.1.gz: /usr/lib/jvm/java-6-openjdk-i386/jre/man/man1/java.1.gz
/usr/lib/jvm/java-7-openjdk-i386/jre/bin/java - priority 1051
slave java.1.gz: /usr/lib/jvm/java-7-openjdk-i386/jre/man/man1/java.1.gz
Current 'best' version is '/usr/lib/jvm/java-6-openjdk-i386/jre/bin/java'.
如果您的Java安装是利用替代系统,则可以轻松安装多个版本,而不会影响现有的运行时。在上面的示例中,我安装了两个Java版本,openjdk6和openjdk7。如果我只是跑步/usr/bin/java -version
,我将获得“最佳”替代方案,该替代方案目前指向openjdk6。我还可以切换使用哪种“最佳”替代方案,以便所有使用默认设置的应用程序java
都指向一个或另一个。
总而言之,如果您的应用程序显式调用了Java二进制文件(而不是替代方法),那么您就可以了。如果您的应用程序正在使用/usr/bin/java
,那么您要确保安装另一个Java版本不会与其他系统冲突。
要了解有关替代品以及您可以使用它们进行的所有有趣操作的更多信息,请参阅中的手册man update-alternatives
。
tl; dr不,他们不应该冲突。确保所有依赖Java 6或Java 7的东西都在使用实际的二进制文件(而不是符号链接),因为/usr/bin/java
根据系统替代品的外观,仅运行就可能有不同的结果。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句