「JAVA」- 安装 | 升级

版本选择

WIP

程序安装

各个版本 JDK 下载地址

https://jdk.java.net/archive/

JDK 8 http://download.java.net/openjdk/jdk8/
JDK 7 http://download.java.net/openjdk/jdk7/
JDK 6 http://download.java.net/openjdk/jdk6/

Container Images

DockerHub

docker pull openjdk:8u242-jdk-buster

for Debian

How to install JDK sources?

安装 OpenJDK 的源码包(以 OpenJDK 8 为例):

apt-get install openjdk-8-source

安装后的目录位于:/usr/lib/jvm/java-8-openjdk-amd64/src.zip

OpenJDK8u102-b14

源码下载

http://hg.openjdk.java.net/jdk8u/jdk8u/archive/jdk8u102-b14.tar.bz2

依赖

必须的依赖:alsa-lib-1.1.2, cpio-2.12, Cups-2.1.4, UnZip-6.0, Which-2.21, Xorg Libraries, Zip-3.0

可选依赖:Certificate Authority Certificates, giflib-5.1.4, Wget-1.18

0x00,下载、解压 jdk8u102-b14.tar.bz2;

解压 jdk8u102-b14.tar.bz2,然后进入“解压后的目录”,执行 0x01;

0x01,下载源码包的各个部分;

jdk 由很多部分组成,源码包被分为多个部分,先下载:

cat > subprojects.md5 << EOF &&
6ea4a074a80d0ee4b6dcd50398835c49  corba.tar.bz2
27b9e7e94fc6a47f452e8a94ba156395  hotspot.tar.bz2
da82a91df3eb4c98ebaab4e71cbbcc4d  jaxp.tar.bz2
8a91561bbc04f50a92032d82b78960e0  jaxws.tar.bz2
61c645dbacfb925944f716ec50474821  langtools.tar.bz2
e65f6d029808a8b523e07d818c8ac9ad  jdk.tar.bz2
2c981235c1cbaba58197fd9b7ffd00e1  nashorn.tar.bz2
EOF

for subproject in corba hotspot jaxp jaxws langtools jdk nashorn; do
  wget -c http:hg.openjdk.java.net/jdk8u/jdk8u/${subproject}/archive/jdk8u102-b14.tar.bz2 \//
       -O ${subproject}.tar.bz2
done &&

md5sum -c subprojects.md5 &&

for subproject in corba hotspot jaxp jaxws langtools jdk nashorn; do
  mkdir -pv ${subproject} &&
  tar -xf ${subproject}.tar.bz2 --strip-components=1 -C ${subproject}
done

脚本的主要目的是下载 jdk 的组成部分,然后解压到”当前目录“;
*: 这期间可能出现下载失败的问题,或者校验失败,手动下载按照脚本执行就可以了:)

0x02,编译

unset JAVA_HOME               &&
sh ./configure                \
   --with-update-version=102   \
   --with-build-number=b14    \
   --with-milestone=nth      \
   --enable-unlimited-crypto  \
   --with-zlib=system         \
   --with-giflib=system       \
   --with-extra-cflags="-std=c++98 -Wno-error -fno-delete-null-pointer-checks -fno-lifetime-dse" \
   --with-extra-cxxflags="-std=c++98 -fno-delete-null-pointer-checks -fno-lifetime-dse" &&
make DEBUG_BINARIES=true SCTP_WERROR= all  &&
find build/*/images/j2sdk-image -iname \*.diz -delete

0x03,安装、并修改权限;

cp -RT build/*/images/j2sdk-image /opt/OpenJDK-1.8.0.102 &&
chown -R root:root /opt/OpenJDK-1.8.0.102

JDK 目录结构

java-open-8u102
├── ASSEMBLY_EXCEPTION
├── bin
├── demo
├── include
├── jre
├── lib
├── LICENSE
├── man
├── release
├── sample
├── src.zip
└── THIRD_PARTY_README

bin 目录下命令介绍

OpenJDK Tools List