2012-04-06 104 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

相關問題