在OS X Mavericks上,打开的Java应用程序会默默失败

17

在Mavericks更新后打开IntelliJ或Android Studio时没有任何反应,默默失败。

命令行中Java和javac都可以工作。

从命令行打开应用程序会出现以下错误:LSOpenURLsWithRole() failed with error -10658 for the file /Applications/Android Studio.app.

从命令行打开IntelliJ的idea_appLauncher (/ Applications / ...app / Contents / MacOS / idea_appLauncher)提供了更多信息:

someuser@machine:~$ /Applications/IntelliJ\ IDEA\ 12\ CE.app/Contents/MacOS/idea_appLauncher ; exit; No Java runtime present, requesting install. logout

[Process completed]

显然,Mavericks没有检测到我的Java安装,即使它是PATH的一部分并且已设置JAVA_HOME,也不会提供“请安装Java运行时”提示。


1
在使用“brew cask”安装Java和IntelliJ之后,我遇到了同样的问题。可惜,我真的很喜欢命令行安装而不是手动安装。 - Dan Bergh Johnsson
5个回答

14

在我的情况下,我看到了一个类似的错误,但是错误代码不同:

LSOpenURLsWithRole() failed for the application /Applications/IntelliJ IDEA 13 CE.app with error -10810.
< p >以下操作适用于我:只需编辑文件/Applications/IntelliJ\ IDEA\ 13\ CE.app/Contents/Info.plist,并将关键字段JVMVersion1.6*更改为1.7*

我的堆栈:

  • IntelliJ IDEA 13 CE
  • java version "1.7.0_51"
  • OS X 10.9.1

这解决了使用“brew cask”安装Java和IntelliJ的情况。 - Dan Bergh Johnsson

9
解决方案:

手动下载并安装Java Runtime

您还需要从设置/安全性与隐私中启用来自所有来源的应用程序。


5
这是因为Android Studio/IntelliJ仍在使用已经弃用的"JavaLaunching"框架,而该框架已不兼容Java 7。您可以安装一个已经停更的JDK 6版本,或者请求Android Studio升级使用Oracle的JDK appbundle。
我不想安装JAVA 6,因为这样会在我的机器上存在两个JDK。所以我修改了Android Studio文件,使其可以从Dock启动:
1. 将studio(位于`/Applications/Android Studio.app/Contents/MacOS`)文件从JavaLauncher存根更改为shell脚本,如下所示:
``` #!/bin/bash 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
2. 在`/Applications/Android Studio.app/Contents`目录下的Info.plist文件中删除Java部分。否则,苹果仍会要求您安装JDK 6:编辑该文件并删除整个java部分。差异将如下所示:http://pastebin.com/QS8M45cr

2

我曾经安装了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*

to

1.7*

我的环境:

  • Android Studio 0.4.2
  • Java 版本 "1.7.0_45"
  • OSX 版本 10.8.5

(说明:此段为原文,已无需翻译)

1
在我的情况下,在Android Studio的设置->安全与隐私->常规选项卡下,我看到了一个"仍然允许"选项。当我点击它时,它消除了对Android Studio的限制。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接