【问题标题】:Gradle not able to build, find or load main classGradle 无法构建、查找或加载主类
【发布时间】:2018-07-09 21:29:16
【问题描述】:

我正在学习如何在 Java 上创建我的第一个程序并使用 gradle 进行编译和构建。

这是程序的代码

class HelloGradle{
public static void main(String[] args) {
System.out.println("Hello, world!");
}}

我把我的文件放到 src->main->java->HelloGradle.java

然后我在apply plugin: 'java' 中创建了带有此类参数的build.gradle 文件

当我尝试使用 gradle build 构建时,它说 BUILD success-full 并创建构建文件夹 所以我将这些行添加到build.gradle 文件中

apply plugin: 'application'
mainClassName = "HelloGradle"

然后我尝试使用这样的命令gradle run 从根文件夹运行它。但是构建失败了。这是错误日志

Task :run FAILED
Task ':run' is not up-to-date because:
Task has not declared any outputs despite executing actions.
Starting process 'command '/Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home/bin/java''.
     Working directory: /Users/dmytro/Desktop/java/sandbox
     Command: /Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home/bin/java
     -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant
     -cp /Users/dmytro/Desktop/java/sandbox/build/classes/java/main:/Users/dmytro/Desktop/java/sandbox/build/resources/main
     HelloGradle
Successfully started process 'command '/Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home/bin/java''
Error: Could not find or load main class HelloGradle
Caused by: java.lang.ClassNotFoundException: HelloGradle``

因此,即使我在配置文件中指定了类文件,gradle 似乎也无法找到它。我下一步要找到解决方案是什么。非常感谢

【问题讨论】:

  • 你的代码有包名吗? Gradle 可能正在寻找类的全名。 mainClassName = "org.gradle.sample.HelloGradle"
  • 我尝试按照您的建议更改配置文件,但到目前为止没有运气。同样的错误。找不到主要方法。我的代码没有包名。
  • 试试public class HelloGradle 并使用IDE
  • 你的java文件在哪里?它的包装是什么?
  • 确切的主类应该是公共的

标签: java gradle main


【解决方案1】:

哇,我刚开始学习 Java 的课程,并按视频上的方式输入,但没有解释 public 是什么,这就是为什么 gradle 无法找到它。

但只要我添加一个代码。它已成功构建并在终端中运行正常。感谢大家 。经验教训

【讨论】:

  • “添加代码”是什么意思?你能更明确一点,以便其他人可以向你学习吗?也许显示缺少的配置行?
猜你喜欢
  • 2018-04-07
  • 2014-09-15
  • 2018-09-12
  • 2017-12-14
  • 1970-01-01
  • 2021-09-18
  • 1970-01-01
  • 1970-01-01
  • 2022-01-05
相关资源
最近更新 更多