如何在Mac OS X上使用JDK 7运行IDEA IntelliJ?

86

我使用Mac OS X 10.8.2,并使用JDK 7。现在我下载了最新版本的IntelliJ IDEA 11。但是它似乎无法启动,需要JDK 6。有没有什么解决方法?

如何在Mac OS X上使用JDK 7运行IntelliJ IDEA?


3
当我安装JDK 8时,遇到了类似的问题,通过将“/Applications/IntelliJ IDEA 13.app/Contents/Info.plist”中的JVMVersion值从1.6更改为1.8,问题得以解决。 - Mrugen Deshmukh
5个回答

74

更新:

在使用JDK 1.7上运行IDEA 12时(在Info.plist中将JVMVersion更改为1.7*),请确保您的环境中有LANG=en_US.UTF-8,请参阅相关的Java问题:

请参考此线程以解决启动器问题。

请注意,在Mac上,GUI应用程序无法访问您的终端环境。如果您在终端中定义了一些环境变量,在终端中运行良好,但在终端之外运行的其他应用程序将无法看到这些变量。解决此问题的一种方法是直接从终端启动应用程序,对于IDEA,可以使用以下命令:

open -a /Applications/IntelliJ\ IDEA\ 12.app/

目前在Mac上使用JDK 1.7存在一些已知问题,比如缺少Retina支持、可能出现闪烁以及一些API未实现的问题。强烈建议在Mac上使用JDK 1.6来运行IDEA以获得最佳体验。但这并不妨碍您将JDK 1.7作为构建和运行项目的目标。


IntelliJ IDEA 11启动器在Mac上无法与JDK 1.7兼容。 目前,您必须安装JDK 1.6才能运行IDEA 11和旧版本。

4
对我不起作用。当我将JVMVersion更改为1.7*并尝试启动IDEA 12时,仍然会收到需要JRE 6的消息。 - Jonas
8
我也遇到了同样的问题。我使用全新安装的Mountain Lion操作系统,Java 7 Update 10版本和 IDEA 12集成开发环境,但还是提示需要Java 6版本。在终端中运行 java -version 命令可以正常工作。你有什么想法吗? - 9ee1
2
视网膜问题已在Java 7u40中修复:https://dev59.com/0mUp5IYBdhLWcg3wkITG#17029720 - neu242
2
编辑完 plist 后,务必重新对应用程序包进行签名以避免启动时出现烦人的提示和间歇性卡顿。创建一个 代码签名证书,然后运行 sudo codesign --verbose --force --sign "<CERT COMMON NAME>" /Applications/WebStorm.app/ - tony19
2
@Jonas,请查看官方JetBrains答案 - CrazyCoder
显示剩余12条评论

68

Mac OSX Yosemite / El Capitan更新

我安装了IntelliJ 15 Ultimate,并收到了相同的消息。我还安装了Java 1.7和1.8。

我通过以下终端步骤解决了这个问题:

$ cd /Applications/IntelliJ\ IDEA\ 14.app/Contents

编辑Info.plist文件,并更改其中的这一部分:

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

致:

<key>JVMVersion</key>
<string>1.8*</string>

启动后,一切都是完美的。


1
非常好用。谢谢! - digit plumber
4
“everything was golden” - 除了现在字体看起来非常糟糕和刺眼之外。 - Sergio Tulentsev
这对我有用。具体的错误信息是“'tools.jar' 似乎不在 IDEA 类路径中。请确保 JAVA_HOME 指向 JDK 而不是 JRE”。 - jimoleary
嗨,当我将JVMVersion设置为1.7*后,它提醒我安装APPLE JRE,提示是“intellij无法找到有效的JVM”。但实际上我有jdk 1.7和1.8,并且JAVA_HOME指向1.7版本。有什么解决方法吗? - Frank
1
这不是在 Mac Os X 上使用 Java 8 运行 Idea 的推荐方式。请查看正确的操作方式:https://youtrack.jetbrains.com/issue/IDEA-126847 - Riccardo Cossu
显示剩余3条评论

27

在使用IntelliJ 13和OS X 10.9时,只需将plist更改为1.7*,即可在Java 7上运行,而无需提示安装Java 6。


1
我刚在OS X 10.8.5上尝试了这个,使用的是Oracle JDK 1.7.0_45和IntelliJ 13.0.2,但字体看起来很糟糕。现在暂时还是用JRE 6吧! - Steve K
2
我刚在OS X 10.9.1上使用Oracle JDK 1.7.0_51和IntelliJ 13.0.2尝试了一下,字体在Retina显示屏上看起来非常好。在JDK 1.7.0_25上它们看起来模糊。有人说Oracle在1.7.0_40中修复了这个问题。在此处获取最新版本:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html - jaredjacobs
遗憾的是,修改plist文件会导致防火墙在每次加载IntelliJ时提示: https://dev59.com/2GYr5IYBdhLWcg3wkK6w#13581526哪个更糟糕?安装JRE6还是每次加载IntelliJ时都提示? :) - Spyder
2
@Spyder,由于更改plist后应用程序签名会更改,因此您必须重新签署应用程序包以防止烦人的提示。对于Webstorm,我在我的登录钥匙串中创建了一个代码签名证书(https://developer.apple.com/library/mac/documentation/security/conceptual/CodeSigningGuide/Procedures/Procedures.html),然后运行`sudo codesign --verbose --force --sign "<Cert Name>" /Applications/Webstorm.app/`。 - tony19

3
对于仍然收到Java 6必须安装的错误消息的人,有两个问题:
  1. Mac OS希望在应用程序Info.plist文件包含Java部分时安装jdk 1.6
  2. 随IntelliJ一起提供的Java启动器也非常需要jdk 1.6
你所需的全部内容是:
  1. 使用具有显式java调用的shell脚本替换原始启动程序(Contents/MacOS/idea)(参数和类路径可以从Info.plist的Java部分获取)。
  2. 从 Info.plist 中删除 "Java" 部分。
或者您可以使用这个https://github.com/wonder-mice/mac-java-launcher自动化这些事情,我相信它不仅适用于IntelliJ。

我尝试在IntelliJ 13中使用mac-java-launcher,但是无法工作。出现了“错误:不是Java应用程序”的错误。 - Wim Deblauwe
1
Wim Deblauwe,应该在新版本的mac-java-launcher中得到修复。 - wonder.mice

2

其他人已经提出了非常好的解决方案,但是您必须手动使用vi编辑器等工具来完成操作。相反,您可以通过Mac终端运行此命令,然后就可以开始了:

find /Applications/IntelliJ*/*Contents/*Info.plist  -exec sed -i -e 's/string>1.6/string>1.7/' {} \;

输入图像说明

一些可选的技巧:

  1. 如果您已安装JDK 1.8,则可以在上述命令中将1.7替换为1.8。
  2. 一如既往,为了以防万一,将您的Info.plist复制到一个文件夹中,以便进行比较或出于其他原因还原它。
  3. 要验证更改是否生效,请运行以下命令:

    • grep "string>1.7" /Applications/IntelliJ*/*Contents/*Info.plist

1
谢谢,这是强制任何JetBrains应用程序在Java 8上运行的最简单方法。 - Sergey Lysenko

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