Gradle - 无法找到或加载主类

新手上路,请多包涵

我正在尝试使用 Gradle 运行一个非常简单的项目,并在使用 gradlew run command 时遇到以下错误:

无法找到或加载主类“hello.HelloWorld”

这是我的文件结构:

 SpringTest
    -src
        -hello
            -HelloWorld.java
            -Greeter.java
    -build
         -libs
         -tmp
    -gradle
         -wrapper
    -build.gradle
    -gradlew
    -gradlew.bat

我排除了 libs 和 tmp 文件夹的内容,因为我认为这不是这个问题的相关信息,但如果需要我可以添加它。

这是我的 build.gradle 文件:

 apply plugin: 'java'
apply plugin: 'application'
apply plugin: 'eclipse'

mainClassName = 'hello/HelloWorld'

repositories {
    mavenLocal()
    mavenCentral()
}

dependencies {
    compile "joda-time:joda-time:2.2"
}

jar {
    baseName = "gs-gradle"
    version = "0.1.0"
}

task wrapper(type: Wrapper) {
    gradleVersion = '1.11'
}

关于如何解决此问题的任何想法?我已经为 mainClassName 属性尝试了各种方法,但似乎没有任何效果。

原文由 kibowki 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.7k
2 个回答

我在这里看到两个问题,一个是 sourceSet 另一个是 mainClassName

  1. 将 java 源文件移动到 src/main/java 而不仅仅是 src 。或者通过将以下内容添加到 build.gradle 来正确设置 sourceSet
    sourceSets.main.java.srcDirs = ['src']

  1. mainClassName 应该是完全限定的类名,而不是路径。
    mainClassName = "hello.HelloWorld"

原文由 kdabir 发布,翻译遵循 CC BY-SA 4.0 许可协议

修改 build.gradle 以将您的主类放在清单中:

 jar {
    manifest {
        attributes 'Implementation-Title': 'Gradle Quickstart',
                   'Implementation-Version': version,
                   'Main-Class': 'hello.helloWorld'
    }
}

原文由 Noumenon 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题