gpt4 book ai didi

java - 在jar的lib文件夹中找不到加载类

转载 作者:太空宇宙 更新时间:2023-11-04 08:29:25 24 4
gpt4 key购买 nike

我将所有依赖项 jar 打包到最终 jar 的 lib 文件夹中。但是当我使用 java -cp my.jar MyMainClass 这样的命令执行时,它说无法加载 lib 文件夹中的类,这里出了什么问题?

谢谢

最佳答案

如果您的程序打包为可执行 jar,则应该有一个单独的文件夹,其中放置其他 jar 依赖项,然后在运行程序时将该文件夹指定为类路径中:

java -classpath c:\path\to\dir_with_jars -jar myExecutableJar.jar p1.MainClass

另外:如果您想使用非正统的方法将 jar 依赖项打包到 jar 文件中,您应该将这些依赖项放在可执行 jar 的根目录中,而不是任何文件夹(lib 或其他文件夹)中。这样它们将有效地位于类路径的根目录中,因此如果您将 jar 运行为:

java -cp:. -jar myJar.jar

应该可以

注意:此答案有错误,请参阅下面附加的评论。这个想法是,实际上有一些工具可以让您将 jar 依赖项打包到 jar 中(作为内部 jar),但这将不再像可以使用默认 JDK 类加载器运行的常规可执行 jar 一样工作。相反,您需要一个特殊的类加载来考虑内部 jar 。提供此功能的工具通常会自动添加必要的特殊类加载并更新 jar list 以使用它。抱歉犯了错误。

关于java - 在jar的lib文件夹中找不到加载类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7817041/

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