我有一门关于软件工程的课程,我们有一个针对销售系统的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个选择:
我已经尝试了所有这些方法,但仍然没有尝试。
当我打开项目时,它说
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
}
}
我的其他团队成员似乎没有问题,可以很好地运行它。任何帮助将不胜感激。
答案 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版本。