gpt4 book ai didi

java - 包含 bouncycaSTLe 提供程序的错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:35:56 26 4
gpt4 key购买 nike

我需要在我的项目中使用 bouncycaSTLe provider 库。

我已将其包含在 gradle 项目中。

apply plugin: 'application'
sourceCompatibility = '1.6'
version = '1.0.0'
mainClassName = 'path.to.main.file'

dependencies {
compile "org.mariadb.jdbc:mariadb-java-client:+"
compile "org.bouncycastle:bcprov-jdk16:+"
compile "commons-codec:commons-codec:+"
testCompile "junit:junit:+"
}

项目构建成功。但是当我尝试运行该项目时。它无法找到 bouncycaSTLe

Exception in thread "main" java.lang.NoClassDefFoundError: org/bouncycastle/jce/provider/BouncyCastleProvider
at com.example.Server.main(Server.java:50)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
Caused by: java.lang.ClassNotFoundException: org.bouncycastle.jce.provider.BouncyCastleProvider
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 6 more

我该如何解决?

最佳答案

您可能没有正确运行您的应用程序。
如果您只是使用 java -jar foo.jar 运行创建的 JAR,您会在运行时错过所有依赖项。
您必须将这些依赖项添加到类路径中。

你有多种方法可以做到这一点。
例如您可以创建一个胖 JAR,其中所有依赖项都使用一些 Gradle 插件重新打包到最终的 JAR 中(有几个,但我根本不喜欢这个解决方案,所以我不能推荐一个)。
或者你可以。 G。应用application插件,然后您可以使用run任务正确运行您的应用程序并使用distZip任务获得现成的分发压缩您的应用程序、所有依赖项和正确设置运行时类路径的启动脚本。
或者你可以。 G。使用 java -cp foo.jar;other.jar;another.jar your.main.Class 手动完成。

关于java - 包含 bouncycaSTLe 提供程序的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42630190/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com