无法从 Gradle 运行 java 类

Posted

技术标签:

【中文标题】无法从 Gradle 运行 java 类【英文标题】:Unable to run java class from Gradle 【发布时间】:2018-06-01 15:24:53 【问题描述】:

我正在 Gradle 中运行自动化测试项目,我需要在测试完成结束时调用一个 Java 程序来生成报告。所以,我创建了一个任务来执行 Java 程序(Gradle to execute Java class (without modifying build.gradle) )。

Gradle 任务:

task reportGenerator(type:JavaExec)
   classpath = sourceSets.main.runtimeClasspath
  main = "util.Result_Generator"

但不幸的是,我收到Error: Could not find or load main class util.Result_Generator 的错误

我已经验证了 Java 环境变量,它也是正确的。你能帮我解决吗?

【问题讨论】:

包含Result_Generator 的源文件在哪里?你能发布你的整个目录结构吗? Result_Generator 是 src/main 还是 src/test 的一部分?从您的目的来看,它似乎是 src/test 的一部分,而不是 sourceSets.*main*.runtimeClasspath 的一部分 Result_Generator 主类位于 src/test 中。现在将类路径更改为 sourceSets.test.runtimeClasspath 后它正在工作 【参考方案1】:

系统无法在上述类路径中找到主类。可能有以下任何一种原因。请验证以下所有内容

    检查主类名是否正确(包括包名) 检查 src/main 中是否有 Result_Generator 文件 如果 Result_Generator 文件在 src/test 而不是 src/main 中可用,则需要将类路径更改为 classpath = sourceSets.test.runtimeClasspath 并正确指定类名。

【讨论】:

将类路径更改为 sourceSets.test.runtimeClasspath 后它正在工作

以上是关于无法从 Gradle 运行 java 类的主要内容,如果未能解决你的问题,请参考以下文章

Eclipse 和 Gradle 类路径不同步:无法解析为类型

Gradle android无法找到符号Context

使用自定义类路径在 Gradle 任务中运行 Java 类

java.lang.IllegalAccessError:类 org.gradle.internal.compiler.java.ClassNameCollector 无法访问类 com.sun.to

Gradle:无法从“11.0.2”确定 java 版本

使用 Jenkins 和 Gradle 运行 Flyway 迁移 - 无法解析位置类路径:db/migration