我正在使用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
bundle 在一起,并使我的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'
}
最佳答案
可能您需要的是“胖 jar ”(Gradle将所有依赖项打包到单个 jar 中)
关于java - 尝试使用tools.jar-Gradle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50823505/