gpt4 book ai didi

java - Eclipse Jar-in-Jar 找不到 joda.time 类

转载 作者:搜寻专家 更新时间:2023-11-01 03:48:49 26 4
gpt4 key购买 nike

Eclipse 有 3 种可运行的 JAR 导出方法。其中之一不适用于我的情况。我想停止使用生成库子文件夹的导出方法并切换到单个 JAR。

在所有情况下,我的调用都是在脚本中进行的,带有一些脚本变量,例如 $MEMORYOPTIONS

java $MEMORYOPTIONS -enableassertions -classpath VARIOUS-SHOWN-BELOW topLevelDomain.domain.packageName.className $1 $2 $3

首先...

我成功使用了以下导出方法和类路径,如图所示。

export > runnable jar > 提取需要的库

-classpath/home/user/workspace/project/project1.jar

我有理由不想使用这个单一的 JAR。 (这是因为未打包的第三方包暴露了具有重名的文件,所以我收到了烦人的警告。示例:一个名为 License.txt 的文件在几个包中。)

其次...

如前所述,我也成功地使用了以下“库子文件夹”导出方法和类路径,如图所示。

export > runnable jar > 将所需的库复制到子文件夹中

-classpath/home/user/workspace/project/project1.jar:/home/user/workspace/project/project1_lib/*

(编辑:事实证明,JAR 有一个指向 project1_lib 子文件夹的 list ,因此可以简化类路径以省略它。只需从类路径中删除冒号 (:) 分隔符之后的部分。)

第三...

我将“包需要的库”解释为 JAR-in-JAR 导出。使用显示的类路径调用,此导出导致找不到类。

export > runnable jar > package required libraries

-classpath/home/user/workspace/project/project1.jar

错误是:

线程“main”中的异常 java.lang.NoClassDefFoundError: org/joda/time/ReadablePartial

如何使这种特定类型的 Eclipse 导出工作?我已经卸载了 Eclipse (Mars) 并重新安装了。我也有删除了 org.joda.time 包并将其添加回来。问题仍然存在。

最佳答案

您是否考虑过创建一个uber jar

使用ma​​ven,您只需添加以下插件定义并使用命令mvn package

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.4.2</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>

<filters>
<filter>
<artifact>joda-time:joda-time</artifact>
<includes>
<include>**</include>
</includes>
</filter>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
</configuration>
</execution>
</executions>
</plugin>

希望这对您有所帮助。

关于java - Eclipse Jar-in-Jar 找不到 joda.time 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34426457/

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