0

gradle用来将一些java代码打包到一个jar中。我正在使用tools.jar. 我已经成功gradle构建它并制作了一个 jar,但是当我使用运行该 jar 时,java -jar <package>.jar我得到了以下 java.lang.NoClassDefFoundError: com/sun/tools/attach/VirtualMachine.

因为tools.jar是你用 a 得到的东西jdk,而不是 a jre。有没有办法可以与我的 jar 捆绑tools.jar在一起package.jar并让我的 jar 在任何地方工作?

这是我build.gradle到目前为止。

buildscript {
    repositories {
        maven {
            url 'https://plugins.gradle.org/m2/'
        }
    }    
}

description = "A java program"

apply plugin: 'java'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
    flatDir {
        dirs System.properties['java.home'] + '/../lib'
    }
}


jar {
    archiveName = "jProg.jar"
    manifest {
        attributes(
                'Dependencies': 'com.sun.tools'
        )
    }
}


dependencies {
    compile group: 'com.sun', name: 'tools'

}
4

1 回答 1

0

可能您需要的称为“胖罐子”(Gradle 将所有依赖项打包到单个 jar 中)

于 2018-06-14T16:47:09.113 回答