Netbeans:如何将javaee容器添加到Java项目中

Netbeans:如何将javaee容器添加到Java项目中,java,jakarta-ee,netbeans,containers,Java,Jakarta Ee,Netbeans,Containers,我试图用Netbeans发送am-email-SSL电子邮件,我已经将javaee.jar和mail.jar添加到我的项目中,但是我得到了以下错误 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.C

我试图用Netbeans发送am-email-SSL电子邮件,我已经将
javaee.jar
mail.jar
添加到我的项目中,但是我得到了以下错误

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)
线程“main”java.lang.ClassFormatError中的异常:类文件javax/mail/MessaginException中非本机或抽象的方法中缺少代码属性 位于java.lang.ClassLoader.defineClass1(本机方法) 位于java.lang.ClassLoader.defineClass(ClassLoader.java:791) 位于java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 位于java.net.URLClassLoader.defineClass(URLClassLoader.java:449) 在java.net.URLClassLoader.access$100(URLClassLoader.java:71) 在java.net.URLClassLoader$1.run(URLClassLoader.java:361) 在java.net.URLClassLoader$1.run(URLClassLoader.java:355) 位于java.security.AccessController.doPrivileged(本机方法) 位于java.net.URLClassLoader.findClass(URLClassLoader.java:354) 位于java.lang.ClassLoader.loadClass(ClassLoader.java:423) 位于sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 位于java.lang.ClassLoader.loadClass(ClassLoader.java:356) 在GUI.compileperform.(compileperform.java:43) 位于Compiler.Main.Main(Main.java:19) 从我的研究中,我发现我必须在JavaEE容器中运行代码,但我没有这方面的经验。我在网上查到了这个,但几乎没有成功,只找到了JavaEE容器

那么,如何将代码添加到JavaEE容器中,然后在项目中使用它呢

如何将JavaEE容器添加到Java项目中

不,请不要那样做。您的唯一意图似乎是运行JavaSE(桌面)应用程序,而不是JavaEE(web)应用程序。您不应该将JavaSE应用程序作为JavaEE应用程序运行

你应该为你所面临的具体问题找到正确的解决方案,而不是问如何实现错误的解决方案

至于你的具体问题,

线程“main”java.lang.ClassFormatError中出现异常:类文件javax/mail/MessaginException中非本机或抽象的方法中缺少代码属性

这基本上意味着当前运行时类路径中提到的类(javax/mail/MessaginException)只包含类和方法签名,而不包含任何具体的代码。换句话说,当前运行时类路径中提到的类是空的。事实上,您在那里的
javaee.jar
(显然是您在解决编译/导入问题的错误尝试中下载的)基本上包含抽象的javaee API,而没有任何具体的实现代码


这是不对的删除
javaee.jar
文件。只需下载
mail.jar
,就足够了。您的具体问题是由于
javaee.jar
文件(其中也包含
javax.mail
API)(但没有实现)在类加载中优先于
mail.jar
文件(其中包含具体的
javax.mail
实现)。
javaee.jar
文件只能用作javaee项目中的编译时依赖项,而不能用作JavaSE项目的运行时依赖项。

您不需要JEE容器就可以从应用程序发送电子邮件。有关更多信息,请参阅。非常感谢,尤其是您提供了清晰且信息灵通的答案。多亏了你,我现在明白多了:)干杯:)