试图在我的新Ubuntu系统上安装Java(JDK 6),并得到一些bizarro错误。 这是我第一次使用任何 Linux的味道,所以我相信这是一个用户问题(权限或其他)。
我直接从Oracle网站下载BIN文件(用于64位Linux的Java SE 6u23)。 这默认下载到/ home / myUserName / Downloads。
从那里我把文件移动到/ opt / java,这是我创build的一个目录,因为(作为一个Linux新手),有意义成为Java应该去的目录。
然后,我运行以下两个命令,每个指令我在网上find运行的BIN:
chmod +x jdk-6u23-linux-x64.bin sudo ./jdk-6u23-linux-x64.bin
现在,在我的/ opt / java目录中,我看到了BIN文件和jdk1.6.0_23目录,在检查时似乎完好无损。
但是 ,当我打开一个新的terminal并运行java -version时 ,我得到:
程序“java”可以在下面的包中find:
– 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-headless目标是什么?!?!
感谢您的任何意见!
我错了尝试使/ opt / java我的Java目录?
不是真的。 许多Java开发人员安装多个JDK安装,并始终使用/opt/jdk1.6.0_23
或类似的路径。 你下载的bin
文件不是一个安装程序 ,而只是一个提取器。 它不会将java
二进制文件安装到像/bin
这样的系统文件夹中。
我通常下载JDK并从我的home文件夹中执行它,然后将其移动到/ opt并执行chown。
我运行了错误的命令吗?
不是真的。 如果你想安装一个单独的JDK,你做得正确。 如果你想要系统集成,最好使用特定于发行版的软件包,例如通过aptitude install sun-java6-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-headless目标是什么?!?
GCJ是Java的Gnu编译器。 显然,它包括一个Java开发工具包和一个Java运行时环境。
为什么要下载一个bin,当你可以简单地:
sudo apt-get install sun-java6-jdk
如果没有什么特别的理由可以从网站上找到这个特定的版本,那么你应该使用apt-get
因为它会处理所有的东西,比如PATH
变量等等。
您只需将JDK二进制文件放在一个目录中即可。 尽管通常使用惯例/ opt / java或/ opt / jdk,但这些不是由系统自动识别的目录。
但是,您可以更新您的PATH环境变量,以在您的系统中的某个目录中包含/ opt / java / bin dir或symlink(ln -s)/ opt / java / bin / java, USR /斌/
您从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 java
请按照以下步骤安装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
要添加一个新的路径名到现有的PATH变量,你需要在终端中输入:
PATH =`echo $ path`:/ your / new / path 导出PATH
如果你失去了原来的PATH变量,可以通过输入以下命令来恢复:
PATH =在/ usr / local / sbin中:在/ usr / local / bin目录:/ usr / sbin目录:在/ usr / bin中:/ sbin目录:/ bin中:在/ usr /游戏 导出PATH
尝试:
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可以在/usr/bin
找到java && javac