部署Java“并排”和工具的Linux标准?

问题:
对于在许多不同平台上工作并需要在不同版本的Java,Android NDK,OpenGL等上进行回归testing的开发人员,经常遇到的问题是试图安装JRE和JDK的多个版本。

通常在linux(archlinux)中手动部署/提取许多版本的NDK,JDK,JRE和J2EE环境。 但是,自动化安装软件包在安装SDK和JRE方式/位置方面不是标准化的,在安装过程中经常会报告碰撞。

题:

  1. 是否有Oracle,(Sun)或其他已被采用的描述的“标准”方法(例如,设置代理/垫片,符号链接等的最佳实践?
  2. 是否有任何常见的GUI工具,脚本(如archlinux-java),让我“切换”活动的Java环境? (指向不同方向的符号链接等)?
  3. 有没有一个工具,允许用户点击“添加新的Java平台”,并让他们分别指定JRE和JDKpath(如分别更新8_u34和8_u49)。

笔记:
archlinux-java只支持openjdk和java-8-oracle,但不支持以前版本的oracle java,(6或7),( https://wiki.archlinux.org/index.php/java#Switching_between_JVM )

希望这个代理/填充所有不同的java版本的“一个工具”将在更新中更新。

通过手动安装不同的Java版本,给定这将打破更新,但这是点 – testing不同的,旧的和未更新的版本。

在这种情况下,机器上有2到6个左右的部署。

最后发生的事情是/ opt被使用(有时),和usr / lib / jvm,甚至其他文件夹也被其他安装引入。

所有部署最好在“opt”或者甚至“lib”下的一个树中,以便更改脚本/variables。

谢谢你的想法!

软件包java-common还提供了一个可以显示和更改默认Java环境的实用程序脚本archlinux-java

此脚本将链接java-default-runtime为指向安装在/var/lib/jvm/java-${JAVA_MAJOR_VERSION}-${VENDOR_NAME}中的有效的非冲突Java环境。 它还为Java环境集提供的所有可执行文件创建并更新/usr/bin链接。

Helper脚本archlinux-java提供了这样的功能:

 archlinux-java <COMMAND>

命令:
    状态列出已安装的Java环境并启用了一个
     get返回默认设置的Java环境的短名称
    将<JAVA_ENV>强制为<JAVA_ENV>作为默认值
    取消设置取消当前的默认Java环境
    修复修复无效/损坏的默认Java环境配置

列出已安装的兼容Java环境

 % archlinux-java status 

例:

 %archlinux -java状态
可用的Java环境:  
   java-7-openjdk(默认)  
  的java -8-的openjdk / JRE  

注意(默认)表示java-7-openjdk当前被设置为默认值。 java和其他二进制文件的调用将依赖于这个Java安装。 另外请注意,前面的输出中只有OpenJDK 8的JRE部分安装在这里。

更改默认的Java环境

 % archlinux-java set <JAVA_ENV_NAME> 

例:

 % archlinux-java set java-8-openjdk/jre 

请注意, archlinux-java不会让您设置无效的Java环境。 在前面的示例中,安装了jdk8-openjdk is **not** so trying to setjdk8-openjdk is **not** so trying to set java-8-openjdk将失败:

 %archlinux-java set java-8-openjdk
 '/ usr / lib / jvm / java-8-openjdk'不是有效的Java环境路径