2012-04-06 107 views
0

我目前正在使用Eclipse上的Mobile Java for Java(MTJ)工具。我的程序需要通过RSA加密SMS消息,所以我尝试使用bouncycastle库。我下载bouncycatle版本1.47并添加到我的构建路径。建设项目时没有问题。但是当我尝试在仿真器上运行时,出现此错误:如何在eclipse中将外部jar包装到输出jar文件中

TRACE: <at java.lang.NoClassDefFoundError: org/bouncycastle/crypto/engines/RSAEngine>, startApp threw an Exception 

这是一个常见问题,NoClassDefFound。为了解决这个问题,我知道我必须在classpath中包含bouncycastle的类文件。但是问题出在这里,我不能将bouncycastle类文件打包到MTJ创建的jar文件中。对于常规项目,我需要做的是在“订单和导出”选项卡上的复选框中打勾,以便将“打勾的”引用库中的所有类文件打包到输出jar中。我在这里也做了同样的事情,但是在创建包之后,我检查了新的jar文件,并且没有使用WinRar类的bouncycastle类。我做了一些 我使用Eclipse Indigo Release 2 build-id:20120216-1857 ,MTJ版本1.1.2。 我也尝试通过eclipse Pulsar 1.3.1创建包,但问题仍然存在。 有什么建议吗?这是一个错误?

问候。

回答

1

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

对于JAR文件,您无法将另一个jar添加到JAR文件(它适用于WAR和EAR)。有两种可能如何解决这个

  1. 你可以解压缩所需的JAR和类文件添加到您的罐子,jar -u可以帮助你(这似乎很难,但如果你正在使用Ant或Maven你将配置一次)
  2. ,你可以尝试使用MANIFEST headers
+0

谢谢您的回答,但它开发新的应用程序时非常不方便,如果Eclipse的,因为我不能使用调试器不会自动部署的一切。除此之外,这个链接[eclipseMe](http://eclipseme.org/docs/advJarFiles.html)展示了一种在_application jar_中包含类文件以输出jar的方法。 – quangdp 2012-04-09 04:02:39

相关问题