ubuntu安装JDK

ubuntu安装JDK

oracle下载jdk需要注册账号了。所以首先注册一个账号。 然后到下载列表,选择jdk-8u241-linux-x64.rpm(用户根据自己的OS类型选择),也可以选jdk-8u241-linux-x64.tar.gz下载,本文重点介绍用rpm的装法。

Ubuntu的软件包格式是deb,如果要安装rpm的包,则要先用alien把rpm转换成deb。

sudo apt-get install alien
sudo alien jdk-8u241-linux-x64.rpm
sudo dpkg -i  jdk-8u241-linux-x64.deb

这样就装完了。安装完后,可以用下面命令查询安装在哪里了。

dpkg -L jdk1.8

大家可以看到到输出如下:

/.
/usr
/usr/java
/usr/java/jdk1.8.0_241-amd64
/usr/java/jdk1.8.0_241-amd64/include
/usr/java/jdk1.8.0_241-amd64/include/classfile_constants.h
/usr/java/jdk1.8.0_241-amd64/include/jvmti.h
/usr/java/jdk1.8.0_241-amd64/include/linux
/usr/java/jdk1.8.0_241-amd64/include/linux/jawt_md.h
/usr/java/jdk1.8.0_241-amd64/include/linux/jni_md.h
/usr/java/jdk1.8.0_241-amd64/include/jvmticmlr.h
/usr/java/jdk1.8.0_241-amd64/include/jawt.h
/usr/java/jdk1.8.0_241-amd64/include/jdwpTransport.h
/usr/java/jdk1.8.0_241-amd64/include/jni.h
/usr/java/jdk1.8.0_241-amd64/man
/usr/java/jdk1.8.0_241-amd64/man/ja_JP.UTF-8
/usr/java/jdk1.8.0_241-amd64/man/ja_JP.UTF-8/man1
/usr/java/jdk1.8.0_241-amd64/man/ja_JP.UTF-8/man1/schemagen.1
/usr/java/jdk1.8.0_241-amd64/man/ja_JP.UTF-8/man1/keytool.1
/usr/java/jdk1.8.0_241-amd64/man/ja_JP.UTF-8/man1/idlj.1
/usr/java/jdk1.8.0_241-amd64/man/ja_JP.UTF-8/man1/jarsigner.1
/usr/java/jdk1.8.0_241-amd64/man/ja_JP.UTF-8/man1/jdb.1
/usr/java/jdk1.8.0_241-amd64/man/ja_JP.UTF-8/man1/jrunscript.1
/usr/java/jdk1.8.0_241-amd64/man/ja_JP.UTF-8/man1/javafxpackager.1
/usr/java/jdk1.8.0_241-amd64/man/ja_JP.UTF-8/man1/jdeps.1
/usr/java/jdk1.8.0_241-amd64/man/ja_JP.UTF-8/man1/native2ascii.1
/usr/java/jdk1.8.0_241-amd64/man/ja_JP.UTF-8/man1/jar.1
...
...

安装完成,需要进行必要的配置才能使用。首先一点要配置路径。

vim /etc/profile

编辑配置文件加入如下内容:

export JAVA_HOME=/usr/java/jdk1.8.0_241-amd64
export JRE_HOME=${JAVA_HOME}/jre  
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
export PATH=${JAVA_HOME}/bin:$PATH

保存文件退出,退出当前登录再重新登录,或者用以下命令刷新环境变量:

source /etc/profile

这时可以用java命令测试一下了。

java -version

发现报错

Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/Object

是因为jre里面有jar没有解包,,不知道为啥会这样,难道是因为用rpm转deb的过程没有处理完全吗? 不管他,总之要能用才行。 首先要改变目录的主人为当前用户(root除外)

cd /usr
sudo chown -R user:user ./java

注意,实际使用中,把上面命令中的user换成你当前登录用户名。 权限修改好后,就可以解包了,否则会因为权限原因不成功。

cd /usr/java/jdk1.8.0_241-amd64/jre/lib
unpack200 rt.pack rt.jar

目录里还有其它pack类型的包,笔者并没有都解开,实测解开rt.jar后,java就可以正常运行了。

java -version
java version "1.8.0_241"
Java(TM) SE Runtime Environment (build 1.8.0_241-b07)
Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode)

应该安装完成了。


欢迎转载,本文地址: https://blog.prodrich.com/detail/4/

带着使命来到世上的你,给他人提供价值,才有价值