尝试在我的新Ubuntu系统上安装Java(JDK 6)并获得一些奇怪的错误。这是我第一次使用任何 Linux的风格,所以我确定这是用户问题(权限或其他方式)。
我直接在Oracle网站上下载了BIN文件(适用于64位Linux的Java SE 6u23)。这默认为下载到/ home / myUserName / Downloads。
从那里我将文件移动到/ opt / java,这是我创建的目录,因为(作为一个Linux新手)有意义成为Java应该去的目录。
然后我按照我在网上找到的运行BIN的指令运行了以下两个命令:
chmod +x jdk-6u23-linux-x64.bin
sudo ./jdk-6u23-linux-x64.bin
现在,在我的/ opt / java目录中,我看到BIN文件和 jdk1.6.0_23 目录在检查时似乎完好无损。
但是,当我打开一个新终端并运行 java -version 时,我得到:
程序'java'可以在以下包中找到:
- gcj-4.4-jre-headless
- gcj-4.5-jre-headless
- openjdk-6-jre-headless
尝试:sudo apt-get install
这里发生了什么?!?
(1)尝试将/ opt / java设为我的Java目录是不是错了?
(2)我是否运行了错误的命令?
(3)Java 1.6.0_23是否安装在我的机器上?
(4)那些gcj-xxx无头目标是什么?!?!
感谢您的任何意见!
答案 0 :(得分:7)
尝试将/ opt / java作为我的Java目录是错误的吗?
不是真的。许多Java开发人员安装多个JDK安装,并始终使用/opt/jdk1.6.0_23
或类似路径。您下载的bin
文件不是安装程序,而只是一个提取程序。它不会将java
二进制文件安装到/bin
等系统文件夹中。
我经常下载JDK并从我的主文件夹中执行它,然后将其移至/ opt并执行chown。
我是否运行了错误的命令?
不是真的。如果您想安装单独的JDK,则可以正确完成。如果您需要系统集成,最好使用特定于发行版的软件包,例如通过aptitude install sun-java6-jdk
或类似软件安装的软件包。
您下载的bin
非常灵活,因为我可以使用它在同一系统上安装多个Java版本。我知道这是你在Linux机器上经常做的事情。
如果要在命令行上使用java
二进制文件,则必须手动设置PATH
和JAVA_HOME
环境变量。我认为在Ubuntu上是/ etc / environment或/ etc / profile或类似的东西。
我的机器上是否安装了Java 1.6.0_23?
不是真的。见上面的答案。
那些gcj-xxx无头目标是什么?!
GCJ是Java的Gnu编译器。显然,它包括Java Development Kit和Java Runtime Environment。
答案 1 :(得分:6)
为什么要下载垃圾箱,只需:
sudo apt-get install sun-java6-jdk
如果您没有任何特殊原因需要该网站的特定版本,则应使用apt-get
,因为它会处理所有内容,例如{{ 1}}变量等
答案 2 :(得分:1)
您只需将JDK二进制文件放在目录中即可。虽然通常使用/ opt / java或/ opt / jdk,但这些不是系统自动识别的目录。
但是,您可以更新PATH环境变量,以在系统中包含的某个目录中包含/ opt / java / bin目录或符号链接(ln -s)/ opt / java / bin / java。路径如/ usr / bin /
答案 3 :(得分:1)
从Sun / Oracle安装的JDK是原始的JDK。 “无头”JDK是开源替代品。 当您运行JDK BIN文件时,它只是提取存档。当您输入java -version命令时,它找到了FOSS Java,而不是您在/ opt中提取的Java。正如其他人所提到的,开发人员保留了JDK的多个版本。如果您希望使用Oracle的Java,那么您需要将/ usr / bin / java链接到/opt/jdk1.6.0_23/bin/java。
sudo ln -s /usr/bin/java /opt/jdk1.6.0_23/bin/java
为此,现有的java命令应首先与“无头”JDK脱钩。 (在上一个命令之前执行以下操作。)
sudo mv /usr/bin/java /usr/bin/java_old
这假设在/ usr / bin中有一个名为java的链接或可执行文件。使用which命令确定。
which java
答案 4 :(得分:1)
请按照以下步骤安装oracle java:
下载 最新 Java SE SDK版本。
http://www.oracle.com/technetwork/java/javase/downloads/index.html
解压档案:
tar -xzvf jdk-8-linux-x64.tar.gz
mv jdk1.8.0 /opt
cd /opt/jdk1.8.0
此步骤将下载的Java版本注册为替代,并将其切换为默认值:
update-alternatives --install /usr/bin/java java /opt/jdk1.8.0/bin/java 1
update-alternatives --install /usr/bin/javac javac /opt/jdk1.8.0/bin/javac 1
update-alternatives --install /usr/lib/mozilla/plugins/libjavaplugin.so mozilla-javaplugin.so /opt/jdk1.8.0/jre/lib/amd64/libnpjp2.so 1
update-alternatives --set java /opt/jdk1.8.0/bin/java
update-alternatives --set javac /opt/jdk1.8.0/bin/javac
update-alternatives --set mozilla-javaplugin.so /opt/jdk1.8.0/jre/lib/amd64/libnpjp2.so
<强>测试强>
检查您正在运行的Java版本
java -version
<强>输出强>
java version "1.8.0"
Java(TM) SE Runtime Environment (build 1.8.0-b132)
Java HotSpot(TM) 64-Bit Server VM (build 25.0-b70, mixed mode)
要检查浏览器插件,请浏览到http://www.java.com/,然后单击“我有Java吗?”
参考:https://askubuntu.com/questions/437776/ubuntu-13-04-unable-to-install-jdk7
答案 5 :(得分:0)
要向现有PATH变量添加新路径名,您需要在终端中输入:
PATH=`echo $path`:/your/new/path export PATH
如果您丢失了原始PATH变量,可以通过输入以下内容进行恢复:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games export PATH
答案 6 :(得分:0)
尝试:
rm -rf /usr/bin/javac
rm -rf /usr/bin/jar
ln -s /home/jdk1.6.0_13/bin/javac /usr/bin/javac
ln -s /home/jdk1.6.0_13/bin/jar /usr/bin/jar
这样,你的linux就可以找到java&amp;&amp; /usr/bin