IntelliJ在OS X Yosemite更新后无法启动

58

我将我的OS X升级到Yosemite,现在我的IntelliJ IDE无法启动。

以下是错误消息:

要打开“IntelliJ IDEA”,您需要安装遗留的Java SE 6运行时。

7个回答

92

您需要做的是继续编辑此文件:

/ Applications / IntelliJ IDEA 13.app / Contents / Info.plist

替换以下内容:

<key>JVMVersion</key>
<string>1.6*</string>

用这个:

<key>JVMVersion</key>
<string>1.7*</string>

编辑: 正如IntelliJ成员@crazycoder所说,完全修复此问题的推荐方法是安装最新的jdk 1.6


当然,您也可以尝试安装Java 6或Java 8。 - Guido Celada
谢谢!这对我也起作用了。我没有尝试安装Java 6或Java 8。 - Sagar Sane
2
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Michael
8
我们不建议采用这种方法。这会破坏数字签名,导致您无法通过补丁更新IDE。推荐的解决方案是安装最新的JDK 1.6版本 - CrazyCoder
3
请检查我的答案。如果您能接受它,那么用户就可以更容易地找到推荐的解决方案,并了解在将 Mac 切换到 Java 7 或 8 后会面临哪些问题和难题。 - CrazyCoder
我会使用CrazyCoder的解决方案。我使用这个解决方案改成了1.8版本,它可以工作,但是我遇到了一些疯狂的行为,比如IDEA使用了52GB的内存,而且无法杀死进程。不得已又改回了1.6版本,现在一切都恢复正常了。 - Shawn Vader

76

官方推荐方案是在Mac上安装/更新JDK 1.6 (如果此链接在Safari中无法打开,请尝试Firefox)。

修改Info.plist将破坏应用程序数字签名并防止修补程序更新

我们不建议修改Info.plist文件以在JDK 1.7或1.8下运行。

查看此文档,了解特定于Java 7和8的已知关键问题列表,这些问题会阻止JetBrains默认使用这些Java版本。

虽然Java 6存在已知的安全问题且已到达终止支持期,但在使用Java 6来运行IntelliJ IDEA(以及基于该平台的其他IDE)时,这些问题很可能无法被利用。 Java 6不安装浏览器插件以运行小程序,当其用于运行IDE时,远程攻击者要利用它将是极其困难(如果不是不可能的话)。

如果您无法接受在Java 6下运行的这些(可能很小的)风险,我们建议使用带有捆绑Java 8的特殊IDE发行版(仍处于实验阶段)。要获取此版本,请将 -jdk-bundled 添加到文件名中。自IDEA 14.1以来,后缀已更改为 -custom-jdk-bundled
例如: 请注意,这只是一个示例,并且可能链接到已过时的版本,请从下载页面中使用最新可用版本,单击下载,取消下载,从感谢您下载IntelliJ IDEA页面复制直接链接并将-jdk-bundled(自14.1起为-custom-jdk-bundled)添加到文件名。 仅在绝对不支持Java 6的情况下使用此版本,请注意已知问题

1
根据系统安全设置,违反应用程序数字签名可能会阻止其网络功能或限制对系统钥匙串的访问(无法再存储版本控制等密码)。 - CrazyCoder
1
安装这个苹果Java 6之后,我的系统Java版本(现在为1.7.55)会发生什么? - hakunami
1
@hakunami - 我的JDK 1.7还没有被更改,也就是说它仍然是我的默认JDK。 - Dan Tanner
@Muers 14已经下载,问题仍然存在。 - hakunami
如果您不想要捆绑的JDK并且想要解决应用程序数字签名问题(不断输入密码太烦人了),则可以修改Info.plist(如下所述),然后重新签署Intellij App。在http://forums.macnn.com/79/developer-center/355720/how-re-sign-apples-applications-once上有一组易于遵循的20个步骤的说明(不用担心,大多数步骤只是按接受)。然后只需执行“codesign -f -s(证书名称)/Application/IntelliJ\ IDEA\ 14.app”。 - neilireson
显示剩余4条评论

11

2
我听说这个方法在我们办公室的很多人身上都行得通,所以我不明白为什么你曾经被踩过。 - Sander Verhagen
这也是El Capitan的解决方案。 - LanceP

6

或者将星号更改为加号

<key>JVMVersion</key>
<string>1.6+</string>

缺点是每次启动IDEA时,OS X都会询问您是否允许网络权限。

但是Java 8仍然存在一些错误,特别是在Retina设备上,JetBrains仍然鼓励使用来自苹果的Java 6。最新更新适用于Yosemite上的IDEA,请点击此处http://support.apple.com/kb/DL1572?viewlocale=en_US&locale=en_US


字体渲染在Java 6的链接版本中正常工作。在Java 8改进这一方面之前(如果有的话),我将坚持使用这个设置。 - raindev

2

如果您有最新的JDK,您可以更改info.plist以处理此问题。

编辑Info.plist文件,例如在您的jdk中:

/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Info.plist

更新JVMCapabilities字典,添加以下值:
          <key>JVMCapabilities</key>
            <array>
                    <string>CommandLine</string>
                    <string>JNI</string>
                    <string>BundledApp</string>
                    <string>WebStart</string>
                    <string>Applets</string>
            </array>

现在,请尝试重新启动应用程序。应用程序现在应该使用您的JDK,而不是寻找JDK 6。

“修改Info.plist将破坏应用程序数字签名并阻止补丁更新。我们不建议修改Info.plist文件以在JDK 1.7或1.8下运行。”即使您为Java更改文件,也应该小心处理。 - Tom
我并不建议修改IntelliJ的Info.plist文件,而是建议更改JDK的Info.plist文件,这样IntelliJ的包内容就不会被改动。 - Sairam Krish
尝试了这个,即使完全重启后也没有效果。这是有文档记录的吗?这应该可以工作吗? - Jan Galinski
@JanGalinski 您正在修改的 jdk info plist 应该是 IntelliJ 使用的那一个。例如,您系统中的默认 jdk 可能是 1.7,而您可能正在修改 jdk1.8。您可以验证一下吗? - Sairam Krish

1

OSX的JDK位于文件夹/Library/Java/JavaVirtualMachines/中。可能会有多个版本,例如1.7或1.8。

正如@CrazyCoder所示,IntelliJ需要存在1.6版本,但Yosemite将其删除(选择了1.7,如果我没记错)。

要安装jdk 1.6,您确实可以像@CrazyCoder建议并由@LanceP确认的那样简单地使用苹果公司的dmg

作为Homebrew Cask用户,我通过以下方式安装:

brew tap caskroom/versions
brew cask install java6

在此之后,IntelliJ又恢复了正常运行。
此外,这篇有用的文章还介绍了如何在OSX上管理多个Java版本。

0

在 MacOS Catalina 版本 10.15.2 (19C57) 升级 PyCharm 后遇到了相同的问题。

解决方法:我回滚到了版本 2019.2 - 2019.2.5。


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