当前位置: 首页 > 知识库问答 >
问题:

java.lang.NoClassDefFoundError: javax/activation/DataContentHandler

朱伯寅
2023-03-14

我正在使用intelliJ IDEA中的谷歌应用引擎和maven开发一个webapp。

到目前为止一切都很好,直到我尝试使用javax.mail发送电子邮件,我收到了这个错误:

java.lang.NoClassDefFoundError: javax/activation/DataContentHandler

我已经放置了所需的依赖项(javax.activation

在本地修复它的一种方法是在vm选项中添加“--add modules java.activation”,当我在本地运行它时,它可以正常工作并发送电子邮件,但当我部署应用程序时,它无法工作。

我的问题是,有没有办法将 vm 参数传递给 maven 或其他任何地方,以便在我部署应用程序时它可以运行而不会出错。

或者有没有其他方法可以做到这一点(用javax.mail与否)?

我的java版本是:openjdk 10.0.2

共有2个答案

干善
2023-03-14

您可以使用docker容器做到这一点。如何在灵活的GAE应用程序中正确设置JVM选项

因为使用maven,您无法为运行时设置VM选项。通过docker尝试可能是关键。

曾英睿
2023-03-14

只需在应用程序中包含java.activation模块。

您可以使用较旧的Oracle版本或较新的Eclipse版本,这在本质上是相同的。

(您应该考虑升级到JDK 11。)

 类似资料:
  • 问题内容: 我编写了一个小的hibernate应用程序,并获得以下stacktrace: 我不明白这个错误的原因。 码: 我的pom.xml: 我已经阅读了相关主题,但是我真的不知道如何解决它-我不想推出Hibernate 4.0版本。 如何解决? 问题答案: Hibernate Validator 5x与validation-api 1.0.x不兼容 JPA 2.0:在JPA2.0中使用java

  • 问题内容: 我正在尝试用Java发送电子邮件。这是代码: 当我编译项目时,在线: …出现以下错误: 注意:我正在使用 问题答案: JDK 9默认禁用对许多javax。* API的访问,现已弃用javax激活。 但是,您可以通过在运行时添加模块来解决它

  • Extensions are activated lazily in VS Code. As a result you need to provide VS Code with context as to when your extension should be activated. We support the following activation events: onLanguage:$

  • 问题内容: 我按照此链接中的指南安装JSTL,但是在尝试启动JSP页面时遇到以下错误: java.lang.NoClassDefFoundError:javax / servlet / jsp / tagext / TagLibraryValidator taglib声明为: 我在Tomcat Web应用程序下安装了JSTL 1.1,并试图在我的项目中执行相同的操作,但是没有用。我也尝试了JSTL

  • 我正试着用java发一封电子邮件。代码如下: 当我编译项目时,在线: ...出现以下错误: 注意:我正在使用java版本

  • 问题内容: 我在项目中将jdk更改为9版本,然后发生错误: 我尝试通过在pom.com上添加以下内容来解决此问题,但对我而言不起作用: 还有其他解决方法吗? 问题答案: 将包含所需类的工件添加到类路径。 似乎(未经测试)您需要的是javax.annotated API。有关详细信息,请参见https://mvnrepository.com/artifact/javax.annotation/jav