我正在使用gradle
将一些java代码打包到jar中。我正在使用tools.jar
的一些类。我在gradle
建造它和制作一个罐子方面取得了成功,但是当我用java -jar <package>.jar
运行那个罐子时,我得到了以下结果。java.lang.NoClassDefFoundError: com/sun/tools/attach/VirtualMachine
.
因为tools.jar
是你用jdk
得到的东西,而不是jre
。有没有办法tools.jar
与我的package.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'
}
可能你需要的叫做"胖罐子"(Gradle 将所有依赖项打包到单个罐子里(