Gradle:即使jar包含主类文件获取错误:无法找到或加载主类

时间:2018-03-13 13:20:36

标签: gradle build.gradle executable-jar

我们使用build.gradle创建了包含所有依赖项的jar文件。它已成功创建,所有依赖项和.class文件都在相应的目录下(例如,com.role.Browse.framework下的Launch class)。

但是在运行jar时遇到错误:无法找到或加载主

C:\IdeaProjects\launch_app\build\libs>java -jar Launch_App-all-1.0.0.jar
Error: Could not find or load main class com.role.Browse.framework.Launch

以下是 build.gradle

的快照
apply plugin: 'java'
apply plugin: 'maven'
apply plugin: 'eclipse'

version '1.0.0'

description = ""Launch_App""

sourceCompatibility = 1.8
targetCompatibility = 1.8

tasks.withType(JavaCompile) {
    options.encoding = 'UTF-8'
}


//create a single Jar with all dependencies

task fatJar(type: Jar) {
    manifest {
        attributes 'Implementation-Title': 'Gradle Jar File',
                'Implementation-Version': version,
                'Main-Class': 'com.role.Browse.framework.Launch'
    }
    baseName = project.name + '-all'
    from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
    with jar }


//To add this single Jar standard assemble or build task
artifacts {
    archives fatJar
}

我为类似的问题提出了一些解决方案,但对我来说没有任何作用,

Gradle : Could Not find...

注意:我的主类(即Launch)扩展了junit.framework.TestCase类,junit库也包含在.jar文件中。

如果我在这里失踪了,请告诉我。

1 个答案:

答案 0 :(得分:0)

即使是我也面临同样的问题。 对于我执行jar文件执行命令后的执行 java -jar jarfile_name.jar没有输出。

请检查几点。 检查manifest.mf文件,并查看其中应包含主类的条目 像Main class =“ class_Name”