我目前正在Eclipse上通过Mobile Tools for Java(MTJ)使用J2me。我的程序需要通过RSA加密SMS消息,所以我尝试使用bouncycastle库。我下载bouncycatle版本1.47并添加到我的buildpath。构建项目时没有问题。但是,当我尝试在模拟器上运行时,我收到此错误:
TRACE: <at java.lang.NoClassDefFoundError: org/bouncycastle/crypto/engines/RSAEngine>, startApp threw an Exception
这是一个常见的问题,NoClassDefFound。为了解决这个问题,我知道我必须在classpath中包含bouncycastle的类文件。但是问题来了,我不能将bouncycastle类文件打包到MTJ创建的jar中。对于常规项目,我需要做的就是勾选“Order and Export”选项卡中的复选框,将“ticked”引用库中的所有类文件打包到输出jar中。我在这里做同样的事情,但在我创建包之后,我检查新的jar文件,并且没有内部的bouncycastle类(使用WinRar检查)。我做了一些 我正在使用Eclipse Indigo Release 2,build-id:20120216-1857,MTJ版本1.1.2。 我也尝试通过eclipse Pulsar 1.3.1创建包,但问题仍然存在。 有什么建议吗?这是一个错误吗?
问候。
答案 0 :(得分:1)
“订单和导出”无法正常工作。如果您有两个项目 - ProjectA和ProjectB以及ProjectA依赖于ProjectA,那么如果ProjectA需要some.jar并且您发现ProjectB也需要some.jar,那么ProjectA中该jar的“Order and Export”使其“可见”也适用于ProjectB。
对于JAR文件,您无法将另一个jar添加到JAR文件中(它适用于WAR和EAR)。如何解决这个问题有两种可能性
jar -u
可以帮助你(这看起来很难,但如果你使用ant或maven,你将配置一次)