【问题标题】:Trying to use tools.jar - gradle尝试使用 tools.jar - gradle
【发布时间】:2018-06-12 18:23:10
【问题描述】:

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

因为tools.jarjdk,而不是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'

}

【问题讨论】:

  • 可能你需要的叫做'fat jar'(Gradle 将所有依赖项打包到单个 jar 中)
  • @MaxFarsikov 你能把它作为答案。我会接受的。

标签: java gradle tools.jar


【解决方案1】:

你需要的可能是“fat jar”(Gradle 将所有依赖项打包到单个 jar 中)

【讨论】:

  • 有人对此投了反对票,我的赞成票只为零:(
猜你喜欢
  • 2015-11-06
  • 2012-07-05
  • 2020-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-09
相关资源
最近更新 更多