update-java-alternatives vs update-alternatives –config java
在Ubuntu 12.04 LTS上,我安装了Sun的JDK7,Eclipse和Arduino IDE。 我希望Arduino使用OpenJDK 6并希望Eclipse使用Sun的JDK 7。
根据我的理解,我需要在运行每个应用程序之前手动选择要使用的Java。 这导致我使用update-java-alternatives -l
命令。 当我运行这个时,我只看到以下内容:
java-1.6.0-openjdk-amd64 1061 /usr/lib/jvm/java-1.6.0-openjdk-amd64
但是当我运行update-alternatives --config java
我看到以下内容:
*0 /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java auto mode 1 /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java manual mode 2 /usr/lib/jvm/jdk1.7.0/bin/java manual mode 3 /usr/lib/jvm/jre1.7.0/bin/java manual mode
我不明白为什么update-java-alternatives
不会显示相同的3个选项。 我也不明白如何在OpenJDK6和JDK7之间切换。 我如何使用OpenJDK6进行Arduino开发,使用Sun JDK7进行Eclipse / Android开发?
sudo update-alternatives --config java
配置程序“java”的默认值。 那是Java VM。
sudo update-alternatives --config javac
配置默认的Java编译器。
您还可以看到,因为第一个命令列出了很多“JRE”(Java运行时环境)文件夹,而程序只是名为“java”。
如果我通过发出命令java -version
或javac -version
检查正在使用哪个版本,我可以看到,每个命令都会更改正在使用的程序。
但是,使用带有JDK版本的update-java-alternatives
会为我更改这两个程序。 使用第一个命令,您可以使用来自不同JDK的Java VM和Java编译器。
因此,您似乎还需要安装openjdk-7-jdk
软件包。 看起来你只安装了openjdk-7-jre
。
至于不同开发环境的切换:
您是在谈论使用不同的Java版本启动IDE本身,还是在 IDE中使用不同的版本来编译和运行您的应用程序?
For 1。:您可以在eclipse.ini中指定要使用的JVM,如此处所述。 我不知道如何为Arduino IDE做到这一点。
For 2。:在Eclipse中,您可以选择要在Window – > Preferences – > Java – > Installed JREs中使用的JRE / JDK。 在Java – > Compiler下,如果您愿意,可以选择较旧的Java合规性。
编辑: 这个DigitalOcean页面也对Ubuntu上与Java相关的所有内容进行了很好的解释。
update-java-alternatives
是一个更新jre/jdk
安装替代方案的程序。
update-alternatives
是一个用于linux的符号链接管理系统(我相信这里没有什么新闻)。
您可以并且确实应该同时使用update-java-alternatives
和update-alternatives
。
首先,确保正确配置所有备选方案。 java和javac只是一些。 有javadoc
, rmic
, serialver
和其他代替上述变量: native2ascii
和/opt/jdk1.8.0_40/bin/native2ascii
应该报告是否安装和/或选择了替代方案。
配置完所有备选方案后,您可以在/usr/lib/jvm
创建链接到您的手动安装。
为了配置update-java-alternatives
您必须使用与目录同名的隐藏文件,但前缀为a。 (点)。
希望这可以帮助。
参考书目
man -S 8 update-java-alternatives
http://tech.lanesnotes.com/2008/03/using-alternatives-in-linux-to-use.html
https://stackoverflow.com/questions/6477415/how-to-set-oracles-java-as-the-default-java-in-ubuntu