启动IntelliJ IDEA 2016报错:cannot start under Java 1.7 : Java 1.8 or later is required 解决办法
idea64.exe 启动错误:Cannot start under Java 1.7.0xxx
IntelliJ IDEA : Unsupported java version Cannot start under Java 1.7.0_xxx: Java 1.8 or later is required
在 windows 使用 IntelliJ IDEA 2016.2,在启动 idea64.exe 的时候,出现”Cannot start under Java 1.7.0_xxx: Java 1.8 or later is required”错误。通过查看官方文档Selecting the JDK version the IDE will run under发现 idea64.exe 搜索 JDK 的时候使用如下的顺序:
idea64.exe uses this JDK search sequence:
1. IDEA_JDK_64 environment variable
2. ..\jre64 directory
3. system Registry
4. JDK_HOME environment variable
5. JAVA_HOME environment variable
按照提示,首先在系统的环境变量中增加了 IDEA_JDK_64 变量,赋值指向了本机所安装的 jdk 的路径,但是设置后还是不起作用,仍然还是报上述的错误。
我的机子之前确实装过 java 7,但是我在系统环境变量中已经设置了 JAVA_HOME 环境变量以及在 Path 中加入了 JAVA_HOME。这时我猜想可能是之前安装 Java 7 的时候把一些信息写入到了 system Registry 中。在系统 system32 文件夹中打开控制台,输入:”java -version”,确实打印出 java 7 的版本信息,于是将 Java 8 中的 java.exe, javaw.exe 以及 javaws.exe 复制到 system32 中进行替换,但这时 idea64.exe 仍然启动不了。本来以为与这个有关,但是又一想,按照上面的搜索顺序,按理说配置了 IDEA_JDK_64 环境变量指向 java 8 应该就可以了,后面的步骤不会再去搜索。所以肯定还是与 jdk 本身有关。
然后打开了 IntelliJ IDEA 安装目录 bin 文件夹下的 idea.bat 脚本。在里面发现下面这句代码:
IF EXIST "%JRE%\lib\amd64" SET BITS=64
- 1
- 1
然后,我想难道我安装的不是 64 位的 jdk,因为这个导致 idea64.exe 不能运行的吗。根据上面那句代码的提示,我打开 jdk8 的安装目录,果然没有发现 amd64 这个文件夹。。。果断卸载,重新下载 64 位的 jdk8 进行安装。然后重新配置 IDEA_JDK_64 环境变量,发现果然是可以了。真是被坑的厉害。
通过这次的试验,我猜测第一次配置 IDEA_JDK_64 环境变量没有起作用的原因应该是,idea64.exe 启动的时候首先去查找 IDEA_JDK_64 环境变量,找到了,但是一验证是否存在 amd64 文件夹,发现不存在,就认为配置是不正确的,所以继续往下查找,去查找..\jre64 directory 目录,这个应该又是没有找到,然后又去查找 system Registry,我不知道这个所谓的 system Registry 是在哪里配置的 (应该是’Software\JavaSoft\Java Runtime Environment\CurrentVersion’以及’Software\JavaSoft\Java Development Kit\CurrentVersion’这里面的值)。但是应该是在安装 jdk7 的时候配置了这个信息,所以 idea64.exe 认为当前安装的 jdk 版本是 7,不符合要求,因此返回了相应的错误。
本文参考:
http://blog.csdn.net/wei83523408/article/details/53073920
http://blog.csdn.net/alex_bean/article/details/52792772
如果这篇文章对您有帮助,您可以打赏我
技术交流 QQ 群:15129679