Java 尽管我实际上在使用Oracle JDK,为什么Android Studio一直警告OpenJDK?

Java 尽管我实际上在使用Oracle JDK,为什么Android Studio一直警告OpenJDK?,java,ubuntu,android-studio,openjdk,Java,Ubuntu,Android Studio,Openjdk,Android Studio一直推荐我使用Oracle JDK,尽管我已经在使用它了。我已经安装了OracleJDK,配置了所有的“备选方案”和环境变量,使其成为默认值,但警告仍然存在。为什么呢?我应该在其他地方配置它吗?我知道我可以单击“不再显示”,但我想知道原因,并确保我实际使用的是Oracle JDK,有没有办法从Android Studio内部检查它 我自己找到了原因——这是Unity launcher面板的工作原理 我已经将Android Studio解包到/opt/google/An

Android Studio一直推荐我使用Oracle JDK,尽管我已经在使用它了。我已经安装了OracleJDK,配置了所有的“备选方案”和环境变量,使其成为默认值,但警告仍然存在。为什么呢?我应该在其他地方配置它吗?我知道我可以单击“不再显示”,但我想知道原因,并确保我实际使用的是Oracle JDK,有没有办法从Android Studio内部检查它


我自己找到了原因——这是Unity launcher面板的工作原理

我已经将Android Studio解包到
/opt/google/Android Studio
,并在最初使用
/opt/google/Android Studio/bin/Studio.sh
运行它。之后,我右键点击了Unity面板上出现的图标,并选择“将其锁定到启动器”,使图标保持在那里。自从我按下这个图标启动Android Studio之后

幕后所做的是问题的原因。系统已在
~/.local/share/applications/jetbrains studio.desktop
上创建了一个包含以下内容的快捷方式文件:

[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Name=Android Studio Setup Wizard
Icon=jetbrains-studio.png
Exec=/usr/lib/jvm/default-java/bin/java -Xbootclasspath/a:/opt/google/android-studio/bin/../lib/boot.jar -classpath /opt/google/android-studio/bin/../lib/bootstrap.jar:/opt/google/android-studio/bin/../lib/extensions.jar:/opt/google/android-studio/bin/../lib/util.jar:/opt/google/android-studio/bin/../lib/jdom.jar:/opt/google/android-studio/bin/../lib/log4j.jar:/opt/google/android-studio/bin/../lib/trove4j.jar:/opt/google/android-studio/bin/../lib/jna.jar:/usr/lib/jvm/default-java/lib/tools.jar -Xms256m -Xmx1280m -XX:MaxPermSize=350m -XX:ReservedCodeCacheSize=240m -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -da -Djna.nosys=true -Djna.boot.library.path= -Djna.debug_load=true -Djna.debug_load.jna=true -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -XX:+HeapDumpOnOutOfMemoryError -Dawt.useSystemAAFontSettings=lcd -Djb.vmOptionsFile=/opt/google/android-studio/bin/studio64.vmoptions -XX:ErrorFile=/home/administrator/java_error_in_STUDIO_%p.log -Djb.restart.code=88 -Didea.paths.selector=AndroidStudio2.1 -Didea.platform.prefix=AndroidStudio com.intellij.idea.Main
StartupNotify=false
StartupWMClass=jetbrains-studio
OnlyShowIn=Unity;
X-UnityGenerated=true
正如
Exec=
行所说,它运行Studio JAR时使用的是它认为的“默认Java”(它似乎与我选择的
updatealternations--config Java
)不一致,而不是手动安装的Orecle JDK,并且不涉及
Studio.sh
脚本(这将选择Oracle JDK)一点也不


也许JDK选择错误的原因是在我安装OracleJDK之前创建了快捷方式。现在,由于我已经删除了OpenJDK和快捷方式文件,并以相同的方式重新创建了它,它说的是
Exec=/usr/lib/jvm/java-8-oracle-amd64/bin/java…

终端只显示您正在使用oracle的java 8 JRE。您最有可能使用OpenJDK for JDK。
javac-version
说什么?@Kayaman
javac-version
javac1.8.0\u102
。另外,
更新备选方案--config javac
显示已选择Oracle。卸载OpenJDK。在那之后,你将确定Android Studio是否指向它。安装了多个JDK。@Kayaman是的,断头台是消除头痛的最好工具……安装多个JDK的有效用例非常少。特别是当你不知道用哪一个的时候。此外,如果您真的错过了宝贵的OpenJDK,您可以在解决问题后重新安装它(这是断头台无法做到的)。