JXBrowser ClassNotFoundException 异常

JXBrowser ClassNotFoundException

我的 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 文件包含到您的应用程序 class 路径中。我看到您将 JxBrowser JAR 文件作为编译依赖项包含在 build.gradle 中。在构建期间可以,但不能用于生产。

请确保将 JxBrowser JAR 文件添加到应用程序的 class 路径中。例如,您可以 download the required JAR files, put them into some directory, and configure the Class-Path attribute in your JAR file as show in the Oracle's tutorial.

或者您可以使用 Gradle plugin 将所有依赖项包含到一个 fat JAR 中。在这种情况下,您不需要配置 Java app classpath.

现在可以使用 JDK & JRE < 10