我使用gradle将一些java代码打包到jar中。我正在使用来自tools.jar的一些类。我已经成功地构建了gradle并制作了一个jar,但是当我使用java -jar <package>.jar运行这个jar时,我得到了折叠的java.lang.NoClassDefFoundError: com/sun/tools/attach/VirtualMachine。
因为tools.jar是用jdk获得的,而不是jre。有什么方法可以将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'
}发布于 2018-06-14 16:47:09
您可能需要的是所谓的“fat jar”(Gradle将所有依赖项打包到单个jar)
https://stackoverflow.com/questions/50823505
复制相似问题