首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >让Java小程序查找嵌入到单个jar文件中的jar库

让Java小程序查找嵌入到单个jar文件中的jar库
EN

Stack Overflow用户
提问于 2011-02-17 18:55:56
回答 3查看 1.9K关注 0票数 0

我在获取Java Applet时遇到了一些问题,它使用嵌入式jar库在网页中工作。具体地说,我为打包在jar文件中的库中包含的类获得了一个NoClassDefFoundError,jar文件本身包含在我的Applet的单个jar文件中。后者的常规类(即那些未包含在嵌套jar文件中的类)由Applet启动器定位,没有任何问题。

下面是我的HTML代码:

代码语言:javascript
运行
复制
<applet code="Applet.class" archive="myApplet.jar" width="600" height="600" title="MyApplet">

假设在MyApplet.jar内部还有另外两个jar文件:根级别的library1.jar和library2.jar。如何使它们可访问,以便启动器可以找到它们?我曾尝试将library2.jar ary1.jar和library2.jar ary2.jar添加到archive属性中,但不起作用。

EN

回答 3

Stack Overflow用户

发布于 2011-02-18 21:09:43

您可以从依赖jar中解压缩这些文件,并将它们包含在您的jar中。假设您有一个bin、src和libs dir。

代码语言:javascript
运行
复制
cd bin
find ../libs -type f -name \*.jar -exec jar xfv {} \;
rm -rf bin/META-INF
cd ..
jar cfv yourjar.jar -C bin/ .
票数 1
EN

Stack Overflow用户

发布于 2011-02-17 19:07:29

Java不直接支持其他jar文件中的jar文件。

您将需要一个知道如何使用它们的自定义类加载器。one-jar项目提供了这样一个类加载器,并且可以使用ant编写脚本。如果使用Eclipse,Export -> Runnable jar可以选择使用one-jar类加载器直接创建单个jar。

请注意,由于类加载器需要在内存中缓存更多信息,因此内存使用率将会更高。

票数 0
EN

Stack Overflow用户

发布于 2011-02-17 20:56:16

您可以使用maven shade插件生成一个包含所有内容的jar。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5028005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档