我正在尝试更改IntelliJ的IDE,但是它始终运行错误的版本

时间:2018-11-20 19:24:59

标签: java gradle intellij-idea

我有一门关于软件工程的课程,我们有一个针对销售系统的gradle项目。它需要Java 8才能运行,我已经在计算机上安装了它。我也有Java 9,除了该类外,我还可以使用Java 9。

我有一个非常乏味的问题,我似乎无法解决:我似乎无法让intelliJ使用Java 8。

我尝试了以下操作:

文件-项目结构

在“项目”下-Java 8

在“模块”下-一切都设置为使用Project SDK(1.8)

在“ SDK”下-我那里只有“ 1.8”

Ctrl + Shift + A->“切换IDE启动JDK ...”

我在那里有3个选择:

  1. 1.8.0_152 java(b16)[启动]
  2. 1.8.0_152 openjdk(release-1024-b11)[捆绑]
  3. 1.8.0_181 java(b13)

我已经尝试了所有这些方法,但仍然没有尝试。

当我打开项目时,它说

C:\Program Files\Java\jdk1.8.0_181\bin\java...

在下面的“运行”标签中。但是,当我键入

java -version

在“终端”标签中,显示为

java version "9.0.4"
Java(TM) SE Runtime Environment (build 9.0.4+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.4+11, mixed mode)

当我尝试执行任何 gradlew 命令时,例如 hsql run

我收到此错误:

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine java version from '9.0.4'.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or -- 
debug option to get more log output.

在尝试这些命令之前,我尝试过运行主gradle.build文件,但未运行该文件,但这没有什么不同。我们的build.gradle文件,如果有帮助的话:

apply plugin: 'java'
apply plugin: 'application'

repositories {
    mavenCentral()
}

version = '1.0'

dependencies {
    compile project(':')
    compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.6.2'
    compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.6.2'
}

mainClassName = 'ee.ut.math.tvt.salessystem.ui.SalesSystemUI'

jar {
    doFirst {
        manifest {
            if (!configurations.runtime.isEmpty()) {
                attributes('Class-Path': configurations.runtime.collect{it.toURI().toString()}.join(' '))
            }
        }
    }
    manifest {
        attributes 'Implementation-Title': 'Gradle Quickstart',
                   'Implementation-Version': version,
                   'Main-Class': mainClassName
    }
}

我的其他团队成员似乎没有问题,可以很好地运行它。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

我想您必须指定Gradle才能使用所需的JVM。

转到设置-> 构建,执行,部署-> Gradle-> Gradle JVM,然后选择所需的JDK。 (它在此线程中指向:https://stackoverflow.com/a/43624456/2799066

在将项目导入构思时,提供JVM和命令行参数的AFAIK也可以进行配置。

答案 1 :(得分:0)

我认为我可以使用它。

我单击文件->新建->从现有来源中选择项目->选择项目文件夹,并希望将其覆盖

然后,我设置了初始的gradle设置,这些设置在启动全新的gradle项目和voila时打开,终端现在可以理解gradlew命令。

但是,奇怪的是,java -version仍然显示9.0.4,但至少现在一切似乎都可以正常工作。

Tl;博士修复:从现有来源创建一个新项目并覆盖当前项目。在安装过程中出现提示时,选择正确的Java版本。