安装JDK
$apt-cache search openjdk 展示能看到的jdk列表
$sudo apt-get install openjdk-17-jdk 安装
$java -version 查看安装结果
配置环境变量
步骤3~步骤5都是为了找到文件路径且确定文件类型,真正影响环境变量设置的事6,7行
1.输入命令:echo $java_home
返回空行;
2.which javac
返回:/usr/bin/javac
3.file /usr/bin/javac
返回:/usr/bin/javac: symbolic link to /etc/alternatives/javac
4.file /etc/alternatives/javac
返回:/etc/alternatives/javac: symbolic link to /usr/lib/jvm/java-8-openjdk-i386/bin/javac
5.file /usr/lib/jvm/java-8-openjdk-i386/bin/javac
返回:/usr/lib/jvm/java-8-openjdk-i386/bin/javac: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=a8eeb948df0418fc8f046910c73713f2b6697a9a, stripped
6.sudo echo export JAVA_HOME=”/usr/lib/jvm/java-8-openjdk-i386”>>~/.bashrc
输入密码;
7)source ~/.bashrc
8)测试命令:gedit ~/.bashrc
查看打开的文件末尾是否成功加入java_home
**解析:命令**
这一系列的操作是在确定Java编译器的位置,并设置JAVA_HOME
环境变量。具体来说:
-
echo $java_home
:这个命令用于显示java_home
环境变量的值。由于返回空行,说明这个环境变量当前没有设置或者没有被正确导出。 -
which javac
:这个命令用于查找javac
命令在PATH
环境变量中指向的完整路径。返回/usr/bin/javac
说明javac
命令在/usr/bin
目录下。 -
file /usr/bin/javac
:这个命令用于查看/usr/bin/javac
文件的类型。结果显示它是一个指向/etc/alternatives/javac
的符号链接。 -
file /etc/alternatives/javac
:继续查看符号链接指向的文件类型,结果显示它又是一个指向/usr/lib/jvm/java-8-openjdk-i386/bin/javac
的符号链接。 -
file /usr/lib/jvm/java-8-openjdk-i386/bin/javac
:最终查看到javac
可执行文件的实际位置,它是一个32位的ELF可执行文件。 -
sudo echo export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-i386/bin">>~/.bashrc
:这个命令尝试将JAVA_HOME
环境变量设置到用户的.bashrc
文件中。但是这里有个错误,因为JAVA_HOME
应该设置为Java安装目录,而不是javac
的二进制文件路径。正确的设置应该是指向Java的安装根目录,比如/usr/lib/jvm/java-8-openjdk-i386
。 -
source ~/.bashrc
:这个命令用于重新加载.bashrc
文件,使得刚才添加的环境变量设置生效。 -
gedit ~/.bashrc
:使用gedit
文本编辑器打开.bashrc
文件,用于查看或编辑文件内容。
这一系列操作的目的是要确定Java编译器的实际安装位置,并尝试设置JAVA_HOME
环境变量,以便在其他地方可以引用Java的安装目录。但是,在设置JAVA_HOME
时犯了一个常见的错误,即将其设置为了javac
的路径而不是Java的安装目录。正确的JAVA_HOME
设置应该指向Java的安装根目录,例如:
export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-i386"
然后在需要时,你可以通过$JAVA_HOME/bin/javac
来引用javac
命令。同时,确保将$JAVA_HOME/bin
添加到你的PATH
环境变量中,这样你就可以直接通过javac
来调用编译器,而不需要指定完整路径。