Ubuntu上的Java安装问题

试图在我的新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二进制文件,你必须手动设置PATHJAVA_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