【发布时间】: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文件在哪里?它的包装是什么?
-
确切的主类应该是公共的