我正在使用Gradle作为JavaFX插件。在构建和运行可执行文件时,即使在distribution/中,一切都工作得非常完美,除了一个类:CloseableHttpClient
。
出于几个目的,我按以下方式创建了以下对象:
CloseableHttpClient client = HttpClients.createDefault();
在IDE中运行程序没有问题,一切都正常工作。但如果我构建并尝试运行.exe文件,则会出现以下Throwable
堆栈跟踪:
在IDE中运行程序没有问题,一切都正常工作。但如果我构建并尝试运行.exe文件,则会出现以下Throwable
堆栈跟踪:
java.lang.NoClassDefFoundError: Could not initialize class org.apache.http.conn.ssl.SSLConnectionSocketFactory
at org.apache.http.impl.client.HttpClientBuilder.build(HttpClientBuilder.java:955)
at org.apache.http.impl.client.HttpClients.createDefault(HttpClients.java:58)
at ch.itcb.tools.lom.util.JsonSimpleUtil.http(JsonSimpleUtil.java:29)...
我真的不明白这个。为什么只有这个类找不到,但我的其他所有类都可以找到呢?
我的 build.gradle 文件:
apply plugin: 'java'
apply plugin: 'eclipse'
apply from: 'javafx.plugin'
sourceCompatibility = 1.8
version = '0.1'
jar {
manifest {
attributes 'Implementation-Title': 'LogoffManager',
'Implementation-Version': version
}
}
repositories {
mavenCentral()
}
dependencies {
compile fileTree(dir: 'lib', include: ['*.jar'])
compile 'ch.qos.logback:logback-classic:1.1.3'
compile 'org.apache.httpcomponents:httpclient:4.5.1'
compile 'com.googlecode.json-simple:json-simple:1.1'
compile group: 'commons-collections', name: 'commons-collections', version: '3.2'
testCompile group: 'junit', name: 'junit', version: '4.+'
}
test {
systemProperties 'property': 'value'
}
uploadArchives {
repositories {
flatDir {
dirs 'repos'
}
}
}
请在需要更多信息的情况下发表评论。谢谢。