2012-08-28 116 views
2

我試圖發送上午電子郵件SSL郵件在Netbeans和我已經加入這兩個javaee.jarmail.jar到我的項目,但我收到以下錯誤Netbeans的:如何將Java EE容器添加到Java項目

Exception in thread "main" java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/mail/MessagingException 
at java.lang.ClassLoader.defineClass1(Native Method) 
at java.lang.ClassLoader.defineClass(ClassLoader.java:791) 
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) 
at java.net.URLClassLoader.access$100(URLClassLoader.java:71) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:361) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:423) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:356) 
at GUI.CompilerForm.<init>(CompilerForm.java:43) 
at Compiler.Main.main(Main.java:19) 

從我的研究中,我發現我將不得不在Java EE容器中運行我的代碼,但我沒有這方面的經驗。我已經在網上查了一下,但只是發現了Java EE容器。

那麼如何將代碼添加到Java EE容器然後在項目中使用它?

+0

你不需要一個JEE容器只是從你的應用程序發送電子郵件。有關更多信息,請參閱http://www.oracle.com/technetwork/java/javamail/index.html。 – Zaki

回答

6

how to add Java EE container to java project

不,請不要這樣做。您的唯一意圖似乎是運行Java SE(桌面)應用程序,而不是Java EE(Web)應用程序。您不應該將Java SE應用程序作爲Java EE應用程序運行。

你還是找你面對詢問如何實現錯誤解決方案,而不是具體問題解決方案。

關於你的具體問題,

Exception in thread "main" java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/mail/MessagingException

這基本上意味着,在當前的運行時類路徑提到的類(javax/mail/MessagingException)僅包含的類和方法簽名,但沒有具體的代碼在所有。換句話說,當前運行時類路徑中提到的類是空的。實際上,你在那裏的javaee.jar(顯然你下載它是爲了解決編譯/導入問題),它基本上包含了抽象的Java EE API 而沒有任何具體的實現代碼。

這是不對的。 刪除javaee.jar文件。只需要mail.jar你可以從JavaMail website下載就足夠了。您的具體問題是由於javaee.jar文件,其中包含javax.mail API(但沒有實現),在包含具體javax.mail實現的文件mail.jar上的班加載中獲得優先權。 javaee.jar文件只能用作Java EE項目中的編譯時間依賴項,而不能用作Java SE項目的運行時依賴項。

+0

非常感謝,尤其是對於清晰明瞭的答案。我現在明白了很多,謝謝你:)乾杯:) –

+0

不客氣。 – BalusC