在OS X Mavericks上静默打开Java应用程序失败
在Mavericks更新后打开Intelli J或Android Studio时没有任何反应,无声地失败。
Java和javac都可以在命令行中运行。
从命令行打开应用程序会出现此错误: LSOpenURLsWithRole() failed with error -10658 for the file /Applications/Android Studio.app.
idea_appLauncher
打开Intelli J的idea_appLauncher
(/ idea_appLauncher
)给出了更多信息:
someuser @ machine:〜$ / Applications / IntelliJ \ IDEA \ 12 \ CE.app/Contents/MacOS/idea_appLauncher; 出口; 没有Java运行时,请求安装。 登出
[流程完成]
Obviosuly Mavericks并没有接受我的Java安装,即使它是PATH的一部分并且设置了JAVA_HOME并且它没有给出“请安装Java运行时”提示。
在我的情况下,我看到了类似的错误,但有不同的错误代码:
LSOpenURLsWithRole() failed for the application /Applications/IntelliJ IDEA 13 CE.app with error -10810.
这对我 /Applications/IntelliJ\ IDEA\ 13\ CE.app/Contents/Info.plist
:只需编辑文件/Applications/IntelliJ\ IDEA\ 13\ CE.app/Contents/Info.plist
并将关键字段JVMVersion
从1.6*
更改为1.7*
。
我的堆栈:
- IntelliJ IDEA 13 CE
- java版“1.7.0_51”
- OS X 10.9.1
解:
手动下载并安装Java Runtime 。
您还需要从“设置/安全和隐私”中的所有来源启用应用程序。
这是因为android studio / intellij仍然使用旧的“JavaLaunching”框架,该框架已经弃用了Java 7.要么安装了生命周期版本的JDK 6,要么请求Android Studio升级以使用oracle的JDK appbundle。
我真的很讨厌安装JAVA 6所以我的机器上会有两个JDK。 所以我攻击了Android工作室文件,以便可以从Dock中启动它们:
- 将工作室(在
/Applications/Android Studio.app/Contents/MacOS
)文件从JavaLauncher存根更改为shell脚本,这是它的样子:
#!/斌/庆典 export JAVA_HOME =`/ usr / libexec / java_home` echo JAVA_HOME = $ JAVA_HOME export APP_PACKAGE ='/ Applications / Android Studio.app' exec $ JAVA_HOME / bin / java -cp $ JAVA_HOME / lib / tools.jar:“$ APP_PACKAGE”/lib/bootstrap.jar:" $ APP_PACKAGE“/lib/extensions.jar:" $ APP_PACKAGE”/lib/util.jar :“$ APP_PACKAGE”/lib/jdom.jar:“$ APP_PACKAGE”/lib/log4j.jar:" $ APP_PACKAGE“/lib/trove4j.jar:" $ APP_PACKAGE”/lib/jna.jar -Didea.platform.prefix = AndroidStudio -Didea.paths.selector = AndroidStudioPreview -Dfile.encoding = UTF-8 -ea -Dsun.io.useCanonCaches = false -Djava.net.preferIPv4Stack = true -XX:+ UseCodeCacheFlushing -XX:+ UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB = 50 -XX:+ HeapDumpOnOutOfMemoryError -Xverify:none -Xbootclasspath / a:“$ APP_PACKAGE”/lib/boot.jar -XX:MaxPermSize = 256m -Xdock:icon =“$ APP_PACKAGE”/Contents/Resources/AndroidStudio.icns com .intellij.idea.Main
确保chmod +x ./studio
到它。
- 删除
/Applications/Android Studio.app/Contents
目录中Info.plist文件中的java部分。 否则,Apple仍会要求您安装JDK 6:编辑文件并删除整个java部分。 差异看起来像: http : //pastebin.com/QS8M45cr
我有java 1.7,但上面没有一个工作或匹配我的问题日志。 默认启动Android Studio失败。 我恢复到java 1.6,相同的行为,都有相同的错误日志(见下文)。
我的错误日志显示:
android studio taskgated failed to get signing info for (cannot make code: invalid signature (code or signature have been modified))
StackOverflow对该特定错误日志的大多数答案是您必须在“安全和隐私”中“允许从任何地方下载应用程序”。
然后我看到@jmcejuela做了什么,并且工作得很好,我编辑了
/Applications/Android\ Studio.app/Contents/Info.plist
并改变了
1.6*
至
1.7*
我的环境:
- Android Studio 0.4.2
- java版“1.7.0_45”
- OSX版本10.8.5
就我而言,我在Settings->Security&Privacy->General Tab
下看到Android Studio的"Allow it anyway"
选项。 当我点击它时,它删除了Android Studio的限制。