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

发布于 2016-09-06 00:31:12
我自己找到了原因--是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=行所说,它使用它认为的"default Java“(这似乎与我在update-alternatives --config java中选择的不一致)运行Studio JAR,而不是使用手动安装的Orecle JDK,并且根本不涉及studio.sh脚本(将选择Oracle JDK)。
选择错误JDK的原因可能是快捷方式是在我安装Oracle JDK之前创建的。现在,由于我已经删除了OpenJDK和快捷方式文件,并以相同的方式重新创建了它,因此它显示为Exec=/usr/lib/jvm/java-8-oracle-amd64/bin/java...。
https://stackoverflow.com/questions/39319964
复制相似问题