我的 JXBrowser 许可证文件有问题。我关注了https://jxbrowser-support.teamdev.com/docs/quickstart/gradle-config.html使用 Gradle 的官方指南,这是我当前的 build.Gradle
构建看起来正常,没有任何错误。
plugins {
id 'java'
}
sourceSets {
main {
java {
srcDir 'src'
}
}
test {
java {
srcDir 'test'
}
}
}
jar {
manifest {
attributes 'Main-Class': 'main.Main'
}
}
version '1.0'
sourceCompatibility = 1.8
repositories {
mavenCentral()
maven { url = 'http://maven.teamdev.com/repository/products' }
}
ext {
jxBrowserVersion = '6.22'
}
dependencies {
compile group: 'org.postgresql', name: 'postgresql', version: '42.2.5'
compile "com.teamdev.jxbrowser:jxbrowser-cross-platform:${jxBrowserVersion}"
compile 'com.maxmind.geoip2:geoip2:2.12.0'
compile files("$rootDir/license.jar")
testCompile group: 'junit', name: 'junit', version: '4.12'
}
运行时发生错误,我不确定我的 build.Gradle 是错误的还是这里有错误
Exception in thread "main" java.lang.NoClassDefFoundError: com/teamdev/jxbrowser/chromium/PermissionHandler
at main.Main.main(Main.java:8)
Caused by: java.lang.ClassNotFoundException: com.teamdev.jxbrowser.chromium.PermissionHandler
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 1 more
最佳答案
我想您在通过可执行 JAR 文件运行 Java 应用程序时会看到此异常。
此异常表明您没有将 JxBrowser JAR 文件包含到应用程序类路径中。我看到您将 JxBrowser JAR 文件作为编译依赖项包含到 build.gradle
中。在构建过程中没问题,但在生产过程中就不行了。
请确保将 JxBrowser JAR 文件添加到应用程序的类路径中。例如,您可以 download所需的 JAR 文件,将它们放入某个目录,然后在 JAR 文件中配置 Class-Path
属性,如 Oracle 的 tutorial 中所示.
或者您可以使用Gradle plugin它将所有依赖项包含到一个胖 JAR 中。在这种情况下,您不需要配置 Java 应用程序类路径。
关于java - JXBrowser类NotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53354447/