java - (仅)下载 OpenJDK 并且不安装它

标签 java

不想希望改变我的主机对 Java 的看法,只下载一个或多个 JDK,包括 OpenJDK。我需要将 JDK 作为构建系统的一部分进行测试和比较。

正如我能够毫无问题地下载并安装 Oracle JDK 一样,我需要下载并安装开放 JDK 的副本。网站http://openjdk.java.net/install/index.html不提供这种可能性。

有没有人找到解决办法?

最佳答案

最简单的方法是下载 OpenJDK 源代码并构建它。对于 8,它基本上可以归结为克隆正确的树集,然后执行常规构建步骤:

cd /path/to/where/you/cloned/jdk8u
mkdir build
bash ../configure # not ../configure because configure is not marked as executible
make all

在 build/下查找并搜索 j2sdk-image 目录。这是你的jdk:

cp -a build/images/j2sdk-image /location/where/i/put/my/jdks/

OpenJDK 的分发包通常包含各种更改,使其不适合移动(例如调整的 RPATH)。也就是说,如果您愿意承担风险,您可以执行以下操作:

yum --download-only install 'java-1.8.0-openjdk*'

现在你有了一堆 RPM。手动提取它们:

rpm2cpio ./name.of.rpm.x86_64.rpm | cpio -id

您应该在当前工作目录中看到 usr 和其他看起来很有趣的目录。浏览,找到 OpenJDK 目录并将其移至其他位置。例如:

cp -a usr/lib/jvm/java-1.8.0-openjdk-1.8.0.111-1.b16.fc24.x86_64/ /location/where/i/put/my/jdks/

请注意,它是 usr/,而不是 /usr/。如果您在任何 ELF 文件上看到,请去除非 $ORIGIN RPATH

Debian/Ubuntu 可能存在类似的东西,但我对它们不熟悉。

关于java - (仅)下载 OpenJDK 并且不安装它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40225427/

相关文章:

java - 为什么 swing GUI 表单生成器不生成二进制类文件/java 源代码?

java - 我关于获取返回排列数组的函数的困惑

java - 使用java读取xml文件

java - Tomcat:War文件部署在本地但不在在线服务器上

java - getChar 函数如何工作?

java - 通过 DB2 Express-C 执行 PreparedStatement 时出错

java - 调用总和法

java - 了解关于引用队列的虚引用与弱引用

java - 验证 IAM 用户凭证

PermGen 空间中的 Java 类大小