技术解析

ubuntu 安装 jdk 一直失败
0
2021-07-02 20:47:40
idczone
全局变量和局部变量都设置了之后,
java -version 报错 没有那个文件或目录
但是我可疑 cd 到那个文件夹下找到 java 这个文件。
这个是那里出错了,看不懂
你环境变量怎么设置的代码贴一下?
source 了吗?
最省心的直接 apt 安装 openjdk 好了

手机不方便贴, source 了,要是实在不行了再说

你检查一下你 jdk 的 bin 目录下的文件有没有执行权限

都有执行权限


/etc/profile 末尾添加
export JAVA_HOME=/opt/jdk1.8.0_101
export PATH=${PATH}:${JAVA_HOME}/bin:${JAVA_HOME}/jre/bin:${PATH}
export CLASSPATH=.:${JAVA_HOME}/bin:${JAVA_HOME}/jre/lib
~/.bashrc 末尾添加
export JAVA_HOME=/opt/jdk1.8.0_101
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

我就是 apt 装了 openjdk 的( default-jdk 这个包),但是不起作用, java -version 显示如下:
The program 'java' can be found in the following packages:
* default-jre
* gcj-5-jre-headless
* openjdk-8-jre-headless
* gcj-4.8-jre-headless
* gcj-4.9-jre-headless
* openjdk-9-jre-headless
Try: sudo apt install
其中 openjdk-8-jre-headless 这个包已经因为 default-jdk 的依赖关系而装上了。
我在 /etc/profile 末尾添加了如下语句:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
这是为什么呢?

我安装了很多次 ,也出现过你这样的情况,反正到现在就是没有安装成功

我在 ubuntu 16.04 也遇到过这个问题,我当时发现 jdk 已经安装好了,但是在终端敲 java 却提示没有安装。
可能得 将 java 的可执行文件 链接到 /usr/sbin 目录而不是 /usr/bin 目录。

https://ilovesusu.github.io/2016/05/24/Debian-8-%E5%AE%89%E8%A3%85-SunJdk/
用这个方法百分之百安装成功,还不需要配置环境变量..

我试了一下也不行啊

可能我表述有问题,或者这个方法对你无效。
1.我表述有问题:
我的大致经历:
我在终端敲 java ,然后它提醒我说可以 java 未安装,敲哪些命令命令可以安 java ,但是在 sudo apt 去安装时发现已经是 installed 了。
然后我在网上找到 java 的安装目录,把 /usr/lib/jvm/java-8-openjdk-amd64/bin/java 这个文件 链接 到 /usr/sbin 目录里,可能要重启终端,再次进入终端时,敲 java 就有正常的结果了。
$ls /usr/sbin -l |grep java
lrwxrwxrwx 1 root root 42 9 月 1 19:21 java -> /usr/lib/jvm/java-8-openjdk-amd64/bin/java
2.这个方法无效:
我也不是很清楚其他的原因。
我的疑问:我在 /usr/bin 目录下也发现了一个 java 文件,好像没用
$ ls /usr/bin -l |grep java
-rwxr-xr-x 1 root root 2513 2 月 11 2016 dh_nativejava
lrwxrwxrwx 1 root root 22 8 月 19 01:29 java -> /etc/alternatives/java
lrwxrwxrwx 1 root root 23 9 月 1 13:09 javac -> /etc/alternatives/javac
lrwxrwxrwx 1 root root 25 9 月 1 13:09 javadoc -> /etc/alternatives/javadoc
lrwxrwxrwx 1 root root 23 9 月 1 13:09 javah -> /etc/alternatives/javah
lrwxrwxrwx 1 root root 23 9 月 1 13:09 javap -> /etc/alternatives/javap
$file /etc/alternatives/java
/etc/alternatives/java: broken symbolic link to /usr/lib/jvm/java-9-openjdk-amd64/bin/java
不知道能不能解决你的问题。


$ ls /usr/sbin -l|grep java
lrwxrwxrwx 1 root root 4 10 月 12 22:11 java -> java
怎么链接的有绝对路径啊
我是在 java 源文件下
$ sudo ln -s java /usr/sbin/java
然后这个软链接没有显示绝对路径,
昨天没有重启,今天重启啦也没用

你的用法错了,首先你得找到你电脑上 openjdk 的安装目录,找到 java 文件的地址,比如我的是‘/usr/lib/jvm/java-8-openjdk-amd64/bin/java ’
然后在是将 java 的地址链接到 /usr/sbin 目录,而且 ln 命令错了。你可以到网上搜搜 ln 用法
ln -s /usr/lib/jvm/java-8-openjdk-amd64/bin/java /usr/sbin/java

话说这么麻烦是怎么来的?我 apt 装一下 openjdk 直接开箱就用了,根本没碰到任何坑。

我想这个问题应该很简单,所以就想知道为什么

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服