无法从 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 类路径不同步:无法解析为类型
java.lang.IllegalAccessError:类 org.gradle.internal.compiler.java.ClassNameCollector 无法访问类 com.sun.to