ubuntu 安装 jdk 一直失败

2016-10-09 20:53:43 +08:00
 HGladIator
全局变量和局部变量都设置了之后,
java -version 报错 没有那个文件或目录
但是我可疑 cd 到那个文件夹下找到 java 这个文件。
这个是那里出错了,看不懂
2590 次点击
所在节点    Linux
15 条回复
mikicomo
2016-10-09 23:48:45 +08:00
你环境变量怎么设置的代码贴一下?
source 了吗?
最省心的直接 apt 安装 openjdk 好了
HGladIator
2016-10-10 08:27:14 +08:00
@mikicomo 手机不方便贴, source 了,要是实在不行了再说
ugugzh
2016-10-10 09:57:29 +08:00
你检查一下你 jdk 的 bin 目录下的文件有没有执行权限
HGladIator
2016-10-10 20:08:04 +08:00
@ugugzh 都有执行权限
HGladIator
2016-10-10 20:10:27 +08:00
@mikicomo

/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
woyaojizhu8
2016-10-10 20:54:01 +08:00
@mikicomo 我就是 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 <selected package>
其中 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
这是为什么呢?
HGladIator
2016-10-10 21:25:05 +08:00
@woyaojizhu8 我安装了很多次 ,也出现过你这样的情况,反正到现在就是没有安装成功
zc666
2016-10-11 16:52:12 +08:00
我在 ubuntu 16.04 也遇到过这个问题,我当时发现 jdk 已经安装好了,但是在终端敲 java 却提示没有安装。

可能得 将 java 的可执行文件 链接到 /usr/sbin 目录而不是 /usr/bin 目录。
ilovesusu
2016-10-11 17:39:29 +08:00
https://ilovesusu.github.io/2016/05/24/Debian-8-%E5%AE%89%E8%A3%85-SunJdk/
用这个方法百分之百安装成功,还不需要配置环境变量..
HGladIator
2016-10-11 18:45:51 +08:00
@zc666 我试了一下也不行啊
zc666
2016-10-12 09:34:41 +08:00
可能我表述有问题,或者这个方法对你无效。
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

不知道能不能解决你的问题。
HGladIator
2016-10-12 22:19:55 +08:00
@zc666
$ 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
然后这个软链接没有显示绝对路径,
昨天没有重启,今天重启啦也没用
zc666
2016-10-12 23:48:03 +08:00
你的用法错了,首先你得找到你电脑上 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
hosiet
2016-10-13 08:54:15 +08:00
话说这么麻烦是怎么来的?我 apt 装一下 openjdk 直接开箱就用了,根本没碰到任何坑。
HGladIator
2016-10-13 23:06:57 +08:00
@hosiet 我想这个问题应该很简单,所以就想知道为什么

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/311478

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX