程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了异常 - java.lang.NoClassDefFoundError: javax/mail/Authenticator - 只有在编译我的 java 项目之后大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决异常 - java.lang.NoClassDefFoundError: javax/mail/Authenticator - 只有在编译我的 java 项目之后?

开发过程中遇到异常 - java.lang.NoClassDefFoundError: javax/mail/Authenticator - 只有在编译我的 java 项目之后的问题如何解决?下面主要结合日常开发的经验,给出你关于异常 - java.lang.NoClassDefFoundError: javax/mail/Authenticator - 只有在编译我的 java 项目之后的解决方法建议,希望对你解决异常 - java.lang.NoClassDefFoundError: javax/mail/Authenticator - 只有在编译我的 java 项目之后有所启发或帮助;

我的程序是使用 maven 在 java 11.0.11 上运行的 java 程序。我使用 JAF 和 JavaMail API 以便在按下按钮后在我的代码中发送电子邮件。当我使用 VScode 运行代码时,它工作正常,但是当我编译以使用 read_tei <- function(folder) { List.files(folder,pattern = '\\.xml$',full.names = TRUE) %>% map_dfr(~.x %>% parseTEI(.,node = "INSERT_NODE_to_find") %>%tibble()) } text <- read_tei("/Path/to/file"). 对其进行 jar 处理,然后使用 @H_520_3@mvn package 运行它并按下应该发送电子邮件的按钮时,它会引发以下异常:

java - jar recipt_generator-1.jar

我尝试更改 maven 编译器版本,为 Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: javax/mail/Authenticator at com.recipt.EndMenu$3.actionPerformed(EndMenu.java:70) at java.desktop/java.awt.button.processActionEvent(button.java:411) at java.desktop/java.awt.button.processEvent(button.java:379) at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5011) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4843) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715) at java.base/java.security.AccessController.doprivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743) at java.base/java.security.AccessController.doprivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742) at java.desktop/java.awt.EventdispatchThread.pumpOneEventForFilters(EventdispatchThread.java:203) at java.desktop/java.awt.EventdispatchThread.pumpEventsForFilter(EventdispatchThread.java:124) at java.desktop/java.awt.EventdispatchThread.pumpEventsForHIErarchy(EventdispatchThread.java:113) at java.desktop/java.awt.EventdispatchThread.pumpEvents(EventdispatchThread.java:109) at java.desktop/java.awt.EventdispatchThread.pumpEvents(EventdispatchThread.java:101) at java.desktop/java.awt.EventdispatchThread.run(EventdispatchThread.java:90) Caused by: java.lang.classnotFoundException: javax.mail.Authenticator at java.base/jdk.internal.loader.builTinClassLoader.loadClass(BuilTinClassLoader.java:581) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) at java.base/java.lang.classLoader.loadClass(ClassLoader.java:521) ... 22 more javax.mail.jar 添加依赖项,并检查我使用的每个 jar 都在类路径环境变量中。 我请求您的帮助,因为我真的很困惑 - 该程序使用 VScode 运行选项完美地发送了电子邮件,但是在编译时错误不断显示。 我会提供任何帮助。

解决方法

JavaMail 不是 Java API 的一部分。它使用 Maven 进行编译,因为您可能将它作为 POM 中的依赖项,因此它位于 Maven 的构建类路径中(并且很可能也在 VSCode 的运行类路径中 - 我不熟悉)。

仅使用 java - jar recipt_generator-1.jar 在命令行上运行它是不够的。如果 JavaMail 的 JAR 文件如下(摘自 java --Help),则必须添加一个:

   -cp <class search path of directories and zip/jar files>
   -classpath <class search path of directories and zip/jar files>
   --class-path <class search path of directories and zip/jar files>
                 A ; separated list of directories,JAR archives,and ZIP archives to search for class files.

要创建包含 JAR 依赖项的 Fat JAR,请参阅:

  • Difference between maven plugins ( assembly-plugins,jar-plugins,shaded-plugins)
  • Build a Fat JAR With Maven(使用 Maven 程序集插件)
  • How to Create a Fat Jar Using Maven(使用 Maven Shade 插件)

大佬总结

以上是大佬教程为你收集整理的异常 - java.lang.NoClassDefFoundError: javax/mail/Authenticator - 只有在编译我的 java 项目之后全部内容,希望文章能够帮你解决异常 - java.lang.NoClassDefFoundError: javax/mail/Authenticator - 只有在编译我的 java 项目之后所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。