问题描述
在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,如here所述。我不知道如何为Arduino IDE做到这一点。
对于2:在Eclipse中,您可以选择要在Window中使用的JRE /JDK – >偏好 – > Java – >已安装的JRE。并在Java下 – >如果您愿意,编译器可以选择较旧的Java合规性。
编辑:This DigitalOcean page也有一个非常好的解释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