相关疑难解决方法(0)

如何在Gradle中为多个项目配置多个gradle.properties文件?

我有多个项目并使用Gradle 2.4构建.

我想覆盖org.gradle.java.home每个项目中的参数,并尝试为每个项目添加gradle.properties文件并覆盖参数.

我已经设置了主gradle项目org.gradle.java.home=C:/Java/jdk1.6.0并在子项目中覆盖为org.gradle.java.home=C:/Java/jdk1.7.0_45

但它没有按预期工作,我得到了

无效的源代码版本:1.7

错误信息.

有人可以提出如何解决这个问题的想法吗?

java gradle build.gradle

9
推荐指数
1
解决办法
5873
查看次数

如何检查在 Gradle 构建过程中使用了哪个已安装的 JDK

这是我的输出gradle -v(在使用包装器的项目中):

$ ./gradlew -v

------------------------------------------------------------
Gradle 5.0
------------------------------------------------------------

Build time:   2018-11-26 11:48:43 UTC
Revision:     7fc6e5abf2fc5fe0824aec8a0f5462664dbcd987

Kotlin DSL:   1.0.4
Kotlin:       1.3.10
Groovy:       2.5.4
Ant:          Apache Ant(TM) version 1.9.13 compiled on July 10 2018
JVM:          11.0.1 (Oracle Corporation 11.0.1+13-LTS)
OS:           Linux 3.10.0-862.11.6.el7.x86_64 amd64
Run Code Online (Sandbox Code Playgroud)

尤其是看到这一行:

JVM: 11.0.1 (Oracle Corporation 11.0.1+13-LTS)
Run Code Online (Sandbox Code Playgroud)

我想切换到 OpenJDK 11。所以选择它,如下所示:

# alternatives --config java

There are 4 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
*  1           /usr/java/jdk-11.0.1/bin/java
 + 2           /usr/local/jdk-11.0.1/bin/java
   3           /usr/java/jre1.8.0_191-i586/bin/java
   4           /usr/java/jdk1.8.0_191-amd64/jre/bin/java

Enter to keep …
Run Code Online (Sandbox Code Playgroud)

java version gradle gradlew

8
推荐指数
2
解决办法
4327
查看次数

gradle 无法定位平台:'Java SE 11' 使用工具链:'JDK 8 (1.8)'

  • 我正在根据安装指南构建 ghidra 。一切顺利,直到我到达这里
  • 一旦我打电话,$ gradle buildGhidra我就会收到以下错误:
> Could not target platform: 'Java SE 11' using tool chain: 'JDK 8 (1.8)'
Run Code Online (Sandbox Code Playgroud)

这看起来很奇怪,因为我确实有 Java 11:

$ java --version
openjdk 11.0.8 2020-07-14
OpenJDK Runtime Environment (build 11.0.8+10-post-Ubuntu-0ubuntu118.04.1)
OpenJDK 64-Bit Server VM (build 11.0.8+10-post-Ubuntu-0ubuntu118.04.1, mixed mode, sharing)
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

java gradle ghidra

8
推荐指数
3
解决办法
7578
查看次数

确定 gradle 构建中使用的 java 版本

  • 补充这个问题:tell-gradle-to-use-specific-java-version
  • 如何确定(验证)gradle build 中实际使用的 java 版本
  • 成功后./gradlew build,我寻找javac,但它只是在一个二进制文件中:
$ grep -rn "javac"
Binary file .gradle/4.6/taskHistory/taskHistory.bin matches
Run Code Online (Sandbox Code Playgroud)
  • 我安装了很多java版本,所以可能会混淆。
  • 有没有办法验证java版本?

java javac gradle

8
推荐指数
1
解决办法
5909
查看次数

为什么 $PATH 中找不到 Java 编译器,也没有 Java 头文件 jni.h?

构建 JPostal时,我发出了命令:

./gradlew assemble
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

checking for gcj... no
checking for guavac... no
checking for jikes... no
checking for javac... no
configure: error: no acceptable Java compiler found in $PATH
make: *** No rule to make target 'install'.  Stop.
:buildJniLib FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':buildJniLib'.
> Process 'command 'sh'' finished with non-zero exit value 2
Run Code Online (Sandbox Code Playgroud)

问题是我已经将java编译器的正确路径添加到环境变量中。事实上,当我输入时,javac它会显示此 SO 答案中讨论的CMD所有选项。例如,在命令行中键入会显示正确的版本:javacjavac -version …

java gcc cmd environment-variables gradle

8
推荐指数
1
解决办法
1708
查看次数

Flutter 报错 Kotlin 找不到所需的 JDK 工具

我首先创建了一个新的颤振项目。

但我收到了这个错误:

* What went wrong:
Execution failed for task ':app:compileDebugKotlin'.
> Kotlin could not find the required JDK tools in the Java installation 'C:\Program Files\Java\jre1.8.0_261' used by Gradle. Make sure Gradle is running on a JDK, not JRE.

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

* Get more help at https://help.gradle.org

BUILD FAILED in 33s
Exception: Gradle …
Run Code Online (Sandbox Code Playgroud)

java sdk android gradle flutter

7
推荐指数
2
解决办法
1万
查看次数

Kotlin在Java安装中找不到所需的JDK工具

运行时,./gradlew clean build我收到以下消息:

> Task :compileKotlin FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileKotlin'.
> Kotlin could not find the required JDK tools in the Java installation '/usr/lib/jvm/java-8-openjdk-amd64/jre' used by Gradle. Make sure Gradle is running on a JDK, not JRE.
Run Code Online (Sandbox Code Playgroud)

我有JDK,JAVA_HOME设置正确,也是如此update-alternatives

# java -version
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-8u191-b12-2ubuntu0.16.04.1-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)
Run Code Online (Sandbox Code Playgroud)
# update-alternatives --config java
There …
Run Code Online (Sandbox Code Playgroud)

ubuntu gradle kotlin gradlew

6
推荐指数
10
解决办法
4918
查看次数

在 gradle 中使用特定的 jre 客户端运行测试

在 64/32 位本机库的世界中,有时您需要指定特定的 jre 来运行代码。我本地安装了 64/32 位 jres。默认为 64 位,但我需要使用 32 位 jvm 运行一些测试...

我如何告诉 gradle 本地系统上 32 位 java.exe 客户端的路径?它不能是默认为jdk的java_home,我只需要在gradle.build中指定用于测试执行阶段的jre客户端。

就像是

        tasks.withType(Test) {
systemProperty "java.library.path", "C:\\here\\nativestuff\\lib"
systemProperty "java.client", "C:\\Program\ Files\ \(x86\)\\Java\\jre7\\bin\\java.exe"}
Run Code Online (Sandbox Code Playgroud)

尝试了我能想到的一切,不知道如何让它工作

java testing gradle

5
推荐指数
1
解决办法
1780
查看次数

在 Docker 容器中构建 Java Gradle 项目?

我们有一个用 Gradle 构建的 Java 项目,它需要 Java 8 等。开发人员在他们的机器上有不同的 Java 版本(不同的项目,IDEA 一直对 Open JDK 很挑剔,但我们用它来运行我们的应用程序),我们希望能够轻松地使用正确的 Java 版本进行构建。

这个想法是使用 Docker 来完成任务,即使用正确的 Java 版本启动一个 docker 容器并将其用于构建(编译、测试、组装等)。

这是一个好主意吗?我该怎么办?例如,我是否告诉 Gradle 启动容器,并告诉它使用它的 javac?或者我是否启动容器,使用项目代码安装卷,然后在该容器中使用 Gradle 进行构建?这会有一个缺点,即人们需要先启动一个容器,但我想它可以被脚本化。

有没有人做这样的事情?

java openjdk gradle docker

5
推荐指数
1
解决办法
2824
查看次数

如何在gradle中为不同的sourceCompatibility和targetCompatibility构建项目

我当前在 gradle 文件中的配置是

sourceCompatibility = 1.7
targetCompatibility = 1.7
Run Code Online (Sandbox Code Playgroud)

该规范使我的项目特定于 java 1.7。

我的要求是我应该能够为不同的java版本构建我的项目,例如java 1.7和java 1.8

PS:就像在 gradle 中构建配置文件一样,我们可以指定不同的 java 版本。

gradle build.gradle

4
推荐指数
1
解决办法
3111
查看次数