使用可执行文件C:\Program Files\Java\jdk-10.0.1\bin\java.exe无法确定Java版本。

50
当我在使用Gradle创建新项目的时候,IntelliJ IDEA 2018.1.2显示以下错误信息:“无法确定可执行文件C:\Program Files\Java\jdk-10.0.1\bin\java.exe的Java版本。” 我通过卸载JDK 10并安装JDK 8来解决了这个问题。

2
https://github.com/gradle/gradle/issues/4503 - guleryuz
回复guleryuz:谢谢,我通过卸载JDK 10并安装JDK 8来解决了问题。 - Jack Wilson
11个回答

64

为了在JDK 10中使用Gradle 4.7+,需要安装最新的Gradle软件。然而,IntelliJ IDEA(当前版本 IntelliJ IDEA 2018.1.4)默认不使用该版本。要解决此问题,请根据您的操作系统安装最新版本的Gradle(安装指南)。如果您使用的是MacOS,则可以使用Homebrew工具:

brew install gradle

进入您的项目目录:

cd ~/path/to/your/project/

使用你安装的Gradle版本生成Gradle Wrapper脚本(在我的情况下是4.8):

gradle wrapper --gradle-version 4.8

该命令将下载Gradle 4.8并为您的当前项目创建gradlew和gradlew.bat脚本。从此时起,您应该在命令行中使用这些脚本。

下一步是确保IntelliJ IDEA使用这些脚本而不是内置的Gradle发行版。您可以通过打开IntelliJ首选项并搜索“gradle”(这将位于“构建、执行、部署/构建工具/Gradle”中)来完成此操作。

在设置的此部分中,选择:

选择“使用gradle 'wrapper'任务配置”

应用更改,按ok键并重新构建(重新同步)Gradle,一切都应该没问题了。希望这有所帮助。


7
如果Gradle包装器脚本已经存在,那么上述命令将不起作用。相反,您必须编辑 ~/path/to/your/project/gradle/wrapper/gradle-wrapper.properties 文件,并将 distributionUrl 的值更改为 https\://services.gradle.org/distributions/gradle-4.8-bin.zip - idleherb
这解决了我的问题。我一直在使用 idea 插件作为 IDEA 的解决方法,但是某些自动装配和配置没有正确配置。在将包装器放在根项目中后 > 导入项目 > 使用 gradle 包装器 > 一切正常运行。 - gzz
1
感谢您的解释,@idleherb。升级到gradle 4.8解决了我的问题;-) - Orco
1
对于一个必须使用JDK 1.8编译的旧项目,我需要打开“文件”,“项目结构...”,然后在“平台设置”下的“SDKs”中,使用**+**按钮删除_11_项。我正在macOS Mojave 10.14.2下使用IntelliJ IDEA ULTIMATE 2018.3。 - fabianopinto
这对我有用,楼主这些答案中有哪个对你有用吗? - Jordan Mackie

13
即使您正在使用Linux,解决方案仍然相同。

在您的项目(工作目录)的根文件夹中 >>

gradle/wrapper/

有一个名为 >> 的文件。

gradle-wrapper.properties

更改 distributionUrl 行(过时版本):

distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-bin.zip

请使用以下 distributionUrl(兼容/正确版本):

distributionUrl=https\://services.gradle.org/distributions/gradle-4.8-bin.zip 

不要忘记配置IntelliJ IDEA设置以使用Gradle-Wrapper配置。


1
这真是太棒了。只需打开网址http://services.gradle.org/distributions/,找到最新版本即可。 - Kishan Solanki

10

以下是我在Windows 10上使用IntelliJ 2018.1.5和Java 10.0.1 JDK解决此问题所做的操作:

  1. https://gradle.org/releases下载了新版本的gradle(最新版本为4.8.1)。
  2. 按照https://gradle.org/install/中提到的步骤进行操作。

(i) Microsoft Windows用户

使用文件资源管理器创建一个名为C:\Gradle的新目录。

打开第二个文件资源管理器窗口,转到下载Gradle分发版的目录。双击ZIP存档文件以显示内容。将内容文件夹gradle-4.8.1拖到您新创建的C:\Gradle文件夹中。

(ii) 添加环境变量PATH C:\Gradle\gradle-4.8.1\bin

  1. 在上述步骤完成后,前往File --> Settings--> Build Tools --> Gradle并设置Gradle home为 C:/Gradle/gradle-4.8.1。

  2. 然后前往View --> Tool Windows --> Gradle并点击刷新所有Gradle项目图标。


7
解决方案概述:
  • 回退到旧版本的jdk
  • 从intelliJ中删除有问题的jdk
下面提供了在ubuntu 18.04.1中针对intelliJ的完整演示。

enter image description here

图1:安装openjdk-8

enter image description here

图2:将JDK8添加到项目结构中。点击+按钮,然后选择JDK。现在选择JDK主目录路径为jdk8。如您从图3中所见,我的路径是/usr/lib/jvm/java-1.8.0-openjdk-amd64

enter image description here

图3:在 intelliJ 中添加了 openjdk-8。[a:] 现在是时候从 intelliJ 中移除较新的 jdk 版本。

enter image description here 图4:选择 10(注意 JDK home path 包含 java-1.11.0-openjdk-amd64),然后点击 - 按钮来移除 10

enter image description here 图5:移除 jdk-10 后,选择 jdk-8(在图5中名为 1.8),然后点击 ok

enter image description here 图6:现在进入文件->设置->构建、执行、部署->构建工具->Gradle->Gradle JVM,并选择与您在项目结构中设置为JDK主目录路径相同的路径,在其中添加1.8,然后按确定。单击构建并选择创建新模块应用程序,应该会创建一个应用程序模块。现在,如果按下运行并选择app模块可以使您的应用程序正常运行,则您会拥有愉快的一天:);如果没有,则请再次检查图3[a]和图6中提到的活动。


终于有一个像样的答案了!谢谢! - Otar Magaldadze
升级Gradle比降级JDK更好,其他答案已经指出了这一点。 - Kristopher Noronha

6

前往:

File >> Settings >> Build, Execution, Deployment >> Build Tools >> Gradle

并选择:

Use local gradle distribution

帮我解决了这个问题。


2

很可能是您的Gradle版本问题。Gradle 4.7+支持JDK 10。


1

在下载最新版本的Gradle并将路径环境变量更改为C:\ Gradle \ gradle-4.10-bin \ gradle-4.10 \ bin后,不是按照说明书上的步骤,并在“设置 - 构建,执行,部署 - Gradle”下更改为“使用本地gradle分发”,我成功了。


1
我还不得不禁用离线模式。 - M. Solomonik

0

我在使用IntelliJ版本2018.1.6 x64时遇到了类似的问题。我安装了Java8后,问题消失了。


0

我不得不卸载我的IntelliJ,包括缓存和所有历史记录,删除我的项目...然后重新安装IntelliJ并再次下载我的项目的最新版本。

作为最后一步,我必须为我的项目定义新的SDK。以前,它显示了2-3个SDK。重新安装后,没有任何SDK。我添加了一个。 在Intellij中添加SDK: 转到-文件-项目结构-项目设置-项目SDK...

在此处添加一个SDK以指向已安装路径的JDK。


0

在Mac上相同 == 无法使用可执行文件 /Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home/bin/java 确定Java版本。 这可以帮助我

cd /Library/Java/JavaVirtualMachines

然后运行

sudo rm -rf jdk-11.0.2.jdk

然后尝试构建

它会请求 SDK,从“内容”中选择它


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