JavaFX项目使用Simple Java Mail编译报错:找不到jakarta.mail类
解决JavaFX项目中SimpleJavaMail编译错误:找不到jakarta.mail.internet.InternetAddress
这个错误是因为你的JavaFX模块化项目没有显式声明依赖Jakarta Mail模块,而SimpleJavaMail底层依赖该模块处理邮件地址相关逻辑。
解决方案
修改你的module-info.java,添加对Jakarta Mail模块的依赖声明:
module com.mycompany.proyectodam { requires javafx.controls; requires javafx.fxml; requires java.base; requires java.sql; requires javafx.graphics; requires org.simplejavamail; // 添加这行,引入Jakarta Mail模块 requires jakarta.mail; opens com.mycompany.proyectodam to javafx.fxml; opens com.mycompany.bd to javafx.base; exports com.mycompany.proyectodam; }
补充说明
- 测试项目能正常运行,是因为非模块化项目会自动加载classpath下的所有依赖类,而模块化项目必须显式声明依赖的模块。
- 如果你用Maven/Gradle这类构建工具,SimpleJavaMail的依赖会自动引入Jakarta Mail的jar包,无需手动添加依赖,只需在
module-info中声明requires即可。
内容的提问来源于stack exchange,提问作者Franco Milazzo
相关产品推荐
相关产品推荐

