Linux安装配置JDK
Linux(Ubuntu24.04)安装配置open-jdk
一、软件包自动安装配置版本
1.检查是否安装
查看Java版本号:
java -version
2.安装
$ sudo apt install openjdk-8-jdk
安装到了哪里?
javac在/usr/lib/jvm/java-8-openjdk-amd64/bin/
java在/usr/lib/jvm/java-8-openjdk-amd64/jre/bin
javac
mikeli@mikeli-DELL:/usr/share/doc/openjdk-8-jdk-headless$ whereis javac javac: /usr/bin/javac /usr/share/man/man1/javac.1.gz mikeli@mikeli-DELL:/usr/share/doc/openjdk-8-jdk-headless$ ll /usr/bin/javac lrwxrwxrwx 1 root root 23 Jan 26 15:38 /usr/bin/javac -> /etc/alternatives/javac* mikeli@mikeli-DELL:/usr/share/doc/openjdk-8-jdk-headless$ ll /etc/alternatives/javac lrwxrwxrwx 1 root root 43 Jan 26 15:38 /etc/alternatives/javac -> /usr/lib/jvm/java-8-openjdk-amd64/bin/javac*
java
mikeli@mikeli-DELL:~/code/java$ whereis java java: /usr/bin/java /usr/share/java /usr/share/man/man1/java.1.gz mikeli@mikeli-DELL:~/code/java$ ll /usr/bin/java lrwxrwxrwx 1 root root 22 Jan 26 15:38 /usr/bin/java -> /etc/alternatives/java* mikeli@mikeli-DELL:~/code/java$ ll /etc/alternatives/java lrwxrwxrwx 1 root root 46 Jan 26 15:38 /etc/alternatives/java -> /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java*
/usr/lib/jvm/java-8-openjdk-amd64/bin/目录
mikeli@mikeli-DELL:/usr/share/doc/openjdk-8-jdk-headless$ ll /usr/lib/jvm/java-8-openjdk-amd64/bin/ total 524 drwxr-xr-x 2 root root 4096 Apr 5 13:31 ./ drwxr-xr-x 7 root root 4096 Apr 5 13:31 ../ -rwxr-xr-x 1 root root 14664 Jan 26 15:38 appletviewer* -rwxr-xr-x 1 root root 14680 Jan 26 15:38 clhsdb* -rwxr-xr-x 1 root root 14664 Jan 26 15:38 extcheck* -rwxr-xr-x 1 root root 14680 Jan 26 15:38 hsdb* -rwxr-xr-x 1 root root 14664 Jan 26 15:38 idlj* -rwxr-xr-x 1 root root 14664 Jan 26 15:38 jar* -rwxr-xr-x 1 root root 14664 Jan 26 15:38 jarsigner* lrwxrwxrwx 1 root root 15 Jan 26 15:38 java -> ../jre/bin/java* -rwxr-xr-x 1 root root 14664 Jan 26 15:38 javac* -rwxr-xr-x 1 root root 14664 Jan 26 15:38 javadoc* -rwxr-xr-x 1 root root 14664 Jan 26 15:38 javah* -rwxr-xr-x 1 root root 14664 Jan 26 15:38 javap* -rwxr-xr-x 1 root root 2806 Jan 26 15:38 java-rmi.cgi* -rwxr-xr-x 1 root root 14664 Jan 26 15:38 jcmd* -rwxr-xr-x 1 root root 14688 Jan 26 15:38 jconsole* -rwxr-xr-x 1 root root 14680 Jan 26 15:38 jdb* -rwxr-xr-x 1 root root 14664 Jan 26 15:38 jdeps* -rwxr-xr-x 1 root root 14664 Jan 26 15:38 jfr* -rwxr-xr-x 1 root root 14664 Jan 26 15:38 jhat* -rwxr-xr-x 1 root root 14712 Jan 26 15:38 jinfo* lrwxrwxrwx 1 root root 14 Jan 26 15:38 jjs -> ../jre/bin/jjs* -rwxr-xr-x 1 root root 14712 Jan 26 15:38 jmap* -rwxr-xr-x 1 root root 14664 Jan 26 15:38 jps* -rwxr-xr-x 1 root root 14664 Jan 26 15:38 jrunscript* -rwxr-xr-x 1 root root 14680 Jan 26 15:38 jsadebugd* -rwxr-xr-x 1 root root 14712 Jan 26 15:38 jstack* -rwxr-xr-x 1 root root 14664 Jan 26 15:38 jstat* -rwxr-xr-x 1 root root 14664 Jan 26 15:38 jstatd* lrwxrwxrwx 1 root root 18 Jan 26 15:38 keytool -> ../jre/bin/keytool* -rwxr-xr-x 1 root root 14664 Jan 26 15:38 native2ascii* lrwxrwxrwx 1 root root 15 Jan 26 15:38 orbd -> ../jre/bin/orbd* lrwxrwxrwx 1 root root 18 Jan 26 15:38 pack200 -> ../jre/bin/pack200* lrwxrwxrwx 1 root root 21 Jan 26 15:38 policytool -> ../jre/bin/policytool* -rwxr-xr-x 1 root root 14664 Jan 26 15:38 rmic* lrwxrwxrwx 1 root root 15 Jan 26 15:38 rmid -> ../jre/bin/rmid* lrwxrwxrwx 1 root root 22 Jan 26 15:38 rmiregistry -> ../jre/bin/rmiregistry* -rwxr-xr-x 1 root root 14664 Jan 26 15:38 schemagen* -rwxr-xr-x 1 root root 14664 Jan 26 15:38 serialver* lrwxrwxrwx 1 root root 21 Jan 26 15:38 servertool -> ../jre/bin/servertool* lrwxrwxrwx 1 root root 20 Jan 26 15:38 tnameserv -> ../jre/bin/tnameserv* lrwxrwxrwx 1 root root 20 Jan 26 15:38 unpack200 -> ../jre/bin/unpack200* -rwxr-xr-x 1 root root 14664 Jan 26 15:38 wsgen* -rwxr-xr-x 1 root root 14664 Jan 26 15:38 wsimport* -rwxr-xr-x 1 root root 14664 Jan 26 15:38 xjc*
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/目录
mikeli@mikeli-DELL:~/code/java$ ll /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/ total 280 drwxr-xr-x 2 root root 4096 Apr 5 13:31 ./ drwxr-xr-x 5 root root 4096 Mar 24 06:54 ../ -rwxr-xr-x 1 root root 14632 Jan 26 15:38 java* -rwxr-xr-x 1 root root 14664 Jan 26 15:38 jjs* -rwxr-xr-x 1 root root 14664 Jan 26 15:38 keytool* -rwxr-xr-x 1 root root 14720 Jan 26 15:38 orbd* -rwxr-xr-x 1 root root 14664 Jan 26 15:38 pack200* -rwxr-xr-x 1 root root 14664 Jan 26 15:38 policytool* -rwxr-xr-x 1 root root 14664 Jan 26 15:38 rmid* -rwxr-xr-x 1 root root 14664 Jan 26 15:38 rmiregistry* -rwxr-xr-x 1 root root 14664 Jan 26 15:38 servertool* -rwxr-xr-x 1 root root 14720 Jan 26 15:38 tnameserv* -rwxr-xr-x 1 root root 111736 Jan 26 15:38 unpack200*
看来/usr/lib/jvm/java-8-openjdk-amd64是主目录
mikeli@mikeli-DELL:/usr/share/doc$
3.配置文件在哪?
配置path和classpath
Linux path :
mikeli@mikeli-DELL:~$ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin
classpath
mikeli@mikeli-DELL:~/software$ echo $CLASSPATH
临时配置(只对本窗口生效,新开窗口不生效)
path
mikeli@mikeli-DELL:~/software/netbeans_new/nbbuild/netbeans/bin$ export PATH="/home/mikeli/software/netbeans_new/nbbuild/netbeans/bin:$PATH" mikeli@mikeli-DELL:~/software/netbeans_new/nbbuild/netbeans/bin$ echo $PATH /home/mikeli/software/netbeans_new/nbbuild/netbeans/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin
classpath
mikeli@mikeli-DELL:~$ export CLASSPATH="/home/mikeli/software/guava-28.0-jre.jar:$CLASSPATH" mikeli@mikeli-DELL:~$ echo $CLASSPATH /home/mikeli/software/guava-28.0-jre.jar:
永久生效
For bash, edit the startup file (~/.bashrc):
mikeli@mikeli-DELL:~/software$ vim ~/.bashrc
path:在.bashrc文件中加上
PATH=/home/mikeli/software/netbeans_new/nbbuild/netbeans/bin:$PATH export PATH
classpath:在.bashrc文件中加上
CLASSPATH=/home/mikeli/software/guava-28.0-jre.jar:$CLASSPATH export CLASSPATH
使配置生效
mikeli@mikeli-DELL:~/software$ source /etc/profile
(新开窗口)环境变量设置生效
#要新打开一个窗口 mikeli@mikeli-DELL:~/software$ echo $PATH /home/mikeli/software/netbeans_new/nbbuild/netbeans/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin
#要新打开一个窗口 mikeli@mikeli-DELL:~/software$ echo $CLASSPATH /home/mikeli/software/guava-28.0-jre.jar:
参考文档
PATH and CLASSPATH (The Java™ Tutorials > Essential Java Classes > The Platform Environment)
What is a classpath and how do I set it?
Linux进阶之环境变量文件/etc/profile、/etc/bashrc、/etc/environment
二、下载文件自行解压配置版本
三、源代码本地编译版本