首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在eclipse中将外部jar打包成输出jar文件

如何在eclipse中将外部jar打包成输出jar文件
EN

Stack Overflow用户
提问于 2012-04-06 18:07:57
回答 1查看 1K关注 0票数 0

我目前正在Eclipse上使用J2me by Mobile Tools for Java (MTJ)。我的程序需要加密短信的RSA,所以我尝试使用bouncycastle库。我下载了bouncycatle版本1.47并添加到我的buildpath中。构建项目时没有问题。但是当我尝试在模拟器上运行时,我得到了这个错误:

代码语言:javascript
复制
TRACE: <at java.lang.NoClassDefFoundError: org/bouncycastle/crypto/engines/RSAEngine>, startApp threw an Exception

这是个常见的问题,NoClassDefFound。为了解决这个问题,我知道我必须在类路径中包含bouncycastle的类文件。但问题来了,我无法将bouncycastle类文件打包到MTJ创建的jar中。对于常规项目,我只需勾选"Order and Export“选项卡中的复选框,即可将”已勾选“的引用库中的所有类文件打包到输出jar中。我在这里做了同样的事情,但是在我创建包之后,我检查了新的jar文件,里面没有bouncycastle的类(使用WinRar检查).I做了一些我正在使用Eclipse Indigo Release 2,build-id: 20120216-1857,MTJ version 1.1.2。我也尝试使用eclipse Pulsar 1.3.1创建包,但问题仍然存在。有什么建议吗?这是一个bug吗?

致以问候。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-06 20:56:55

“订单和出口”并不像你想象的那样工作。如果您有两个项目- ProjectA和ProjectB,并且ProjectA依赖于ProjectA,那么如果ProjectA需要some.jar,并且您发现ProjectB也需要some.jar,那么在ProjectA中对该jar的“订购和导出”将使其对ProjectB也“可见”。

对于JAR文件,您不能将另一个jar添加到JAR文件中(它适用于WAR和EAR)。有两种方法可以解决这个问题

  1. 您可以解压缩所需的jar并将类文件添加到您的JAR中,jar -u可以帮助您(这似乎很难,但如果您使用的是ant或maven,则只需配置一次)
  2. 您可以尝试使用maven
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10042027

复制
相关文章

相似问题

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