【问题标题】:Building executable jar with Gradle and NetBeans使用 Gradle 和 NetBeans 构建可执行 jar
【发布时间】:2017-11-30 06:35:32
【问题描述】:

我已经搜索了两天来解决这个问题,但我没有找到解决方案。首先我想构建 fat-jar,然后我放弃了它看起来更复杂,所以我开始构建普通的可执行 jar。我正在使用 Gradle 插件在 NetBeans 8.2 中构建一些程序(http://plugins.netbeans.org/plugin/44510/gradle-support

我的项目结构是这样的:

Project Structure

我对 Gradle 比较陌生,我使用它不到一个月。我的 build.gradle 看起来像这样:

repositories {
   mavenCentral()
}

dependencies {
    // TODO: Add dependencies here ..
//    //   http://www.gradle.org/docs/current/userguide/dependency_management.html#sec:how_to_declare_your_dependencies
//    testCompile group: 'junit', name: 'junit', version: '4.10'

    // https://mvnrepository.com/artifact/org.apache.poi/poi
    compile group: 'org.apache.poi', name: 'poi', version: '3.16'

    // https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml
    compile group: 'org.apache.poi', name: 'poi-ooxml', version: '3.16'

    // https://mvnrepository.com/artifact/org.apache.pdfbox/pdfbox
    compile group: 'org.apache.pdfbox', name: 'pdfbox', version: '2.0.6'


}

apply plugin: 'java'


mainClassName = "paket.Glavna"

jar {
    from {
        (configurations.runtime).collect {
            it.isDirectory() ? it : zipTree(it)
        }
    }
    manifest {
        attributes("Main-Class": "Glavna" )
    }
}

现在,我无法使用它来制作可执行的 jar。我想我已经追踪到 jar 中没有通往主类的路径的问题,但我不知道为什么它没有添加它。我得到的错误是:

错误:无法找到或加载主类 DnevniIzvestajG-1.0.jar

jar 运行(内部 Glavna 类是 main): java -cp projectname.jar paket.Glavna

我也试过跑步 清单添加 但也没有添加到主类的链接。

【问题讨论】:

    标签: java gradle netbeans jar executable


    【解决方案1】:

    尝试使用main() 方法将包添加到类中。

    jar {
        archiveName = 'Glavna.jar'
    
        manifest {attributes 'Main-Class': 'paket.Glavna'}
    
        from(configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }) {}
    }
    

    像这样构建一个胖罐子是不可取的,试试Application plugin

    【讨论】:

    • 现在我收到此错误:* 出了什么问题:评估根项目“DnevniIzvestajG”时出现问题。 > 在 org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler 类型的对象上找不到参数 [{group=org.apache.poi, name=poi, version=3.16}] 的方法 compile()。
    • 我不确定,但有时依赖项会出现问题,请尝试不同的语法 compile 'org.apache.poi:poi:3.16'
    猜你喜欢
    • 2021-01-21
    • 2013-08-20
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 2012-11-21
    • 1970-01-01
    • 2018-04-06
    • 1970-01-01
    相关资源
    最近更新 更多