在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并将关键字段JVMVersion1.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中启动它们:

  1. 将工作室(在/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到它。

  1. 删除/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的限制。