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

启动IntelliJ IDEA 2016报错:cannot start under Java 1.7 : Java 1.8 or later is required 解决办法的更多相关文章

  1. 启动CDH的cloudera-scm-server报错Error: JAVA_HOME is not set and Java could not be found

    1 报错信息如下 +======================================================================+| Error: JAVA_HOME ...

  2. 关于子线程使用Toast报错Can't create handler inside thread that has not called Looper.prepare()的解决办法

    形同如下代码,在Thread中调用Toast显示错误信息: new Thread(new Runnable(){ @Override public void run() { try{ weatherD ...

  3. windows下编译caffe报错:error MSB4062: 未能从程序集 E:\NugetPackages\OpenCV.2.4.10\......的解决办法

    参考博客:http://blog.csdn.net/u013277656/article/details/75040459 在windows上编译caffe时,用vs打开后会自动加载还原NugetPa ...

  4. Skype坑爹报错:“旧版本无法删除,请联络您的技术支持小组 ”的解决办法

    真是恶心的让人想吐的报错.现在终于解决了,跟大家分享一下方法. 先给问题截个图,如下 首先当我去搜解决办法之前,我已经在[控制面板]的[卸载程序]里把Skype删除了,真是让我后悔不已的操作啊!!因为 ...

  5. 利用powerdesigner创建表模型后导出sql语句方法,以及报错 Generation aborted due to errors detected during the verification of the model.的解决办法

    今天用powerdesigner建了表模型,下面先说一下导出sql语句的步骤. 1.选项 2. 然后就报错了,下面说解决办法,很简单. 你没看错,把模型检查的√去掉就行了~~ 导出表名不带双引号的设置 ...

  6. pynlp报错:pynlpir.LicenseError: Your license appears to have expired. Try running "pynlpir update"解决办法。

    使用pyltp做文本挖掘时报错: pynlpir.LicenseError: Your license appears to have expired. Try running "pynlp ...

  7. weblogic启动受管服务器报错Authentication for user weblogic denied (weblogic 11g 域账号密码不生效的解决方法)

    或者   解决方法:

  8. tensorflow-mnist报错[WinError 10060] 由于连接方在一段时间后没有正确答复解决办法

    问题原因: tensorflow提供了tensorflow.exapmles.tutorials.mnist.input_data模块下载mnist数据集.代码如下 如果path路径底下没有mnist ...

  9. eclipse java项目中明明引入了jar包 为什么项目启动的时候不能找到jar包 项目中已经 引入了 com.branchitech.app 包 ,但时tomcat启动的时候还是报错? java.lang.ClassNotFoundException: com.branchitech.app.startup.AppStartupContextListener java.lang.ClassN

    eclipse java项目中明明引入了jar包 为什么项目启动的时候不能找到jar包 项目中已经 引入了 com.branchitech.app 包 ,但时tomcat启动的时候还是报错?java. ...

随机推荐

  1. Revit Family API 添加对齐

    没测试成功,留待以后研究. [TransactionAttribute(Autodesk.Revit.Attributes.TransactionMode.Manual)] ; ; i < nV ...

  2. [Node.js]操作mysql

    摘要 上篇文章介绍了node.js操作redis的简单实例,这里介绍如何操作mysql. 安装 安装mysql模块 cnpm install mysql 一个例子 新建一个mysql.js的文件,代码 ...

  3. jQuery统计上传文件的大小

    对于现代浏览器(支持html5)来说,在客户端统计上传文件的大小,可以通过$(selector)[0].files[0].size来实现.但在老版本的IE浏览器中,比如IE7,IE8或IE9,却不支持 ...

  4. iOS7中的多任务 - Background Fetch,Silent Remote Notifications,Background Transfer Service

    转自:http://onevcat.com/2013/08/ios7-background-multitask/ 在IOS 7 出来不就,公司内部也组织了一次关于IOS 7 特性的的分享,今天看见on ...

  5. AndroidStudio工具将Module项目导出成Jar和arr库

    原文:http://blog.csdn.net/liulei823581722/article/details/52919697 该篇首先讲述利用AndroidStudio如何把一个module项目导 ...

  6. eval json ajax

    在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery的ea ...

  7. ExtJS动态设置表头

    if(document.getElementById("lxdj_radio").checked){ colQd = new Ext.grid.ColumnModel(colMAr ...

  8. Python中的文件IO操作(读写文件、追加文件)

    Python中文件的读写包含三个步骤:打开文件,读/写文件,关闭文件. 文件打开之后必须关闭,因为在磁盘上读写文件的功能是由操作系统提供的,文件作为对象,被打开后会占用操作系统的资源,而操作系统在同一 ...

  9. 波士顿法律第一至五季/全集Boston Legal迅雷下载

    本季第一至五季Boston Legal(2004-2008)看点:<波士顿法律>(Boston Legal)是讲述的是美国波士顿市一家律师事务所的故事,主要是两位活宝Alan(James ...

  10. ADB与AVD的常见问题

    一.adb问题常用解决方法 若是模拟器启动正常,但是adb检测不到模拟器,我们给他一套不解释连招,下面教大家几招基础拳法. 1.基础拳法一:循环自动检测 下图那个小按钮,点它,狠狠的点它,然后点运行, ...