[转载]java.lang.NoClassDefFoundError: com/s_亮仔_新浪博客

本文介绍了解决在使用JavaMail发送邮件时遇到的“java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream”错误的方法。通过删除MyEclipse自带的javaee.jar中的旧javax.mail和javax.activation目录,并添加最新的mail.jar和activation.jar来解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

说的真的可以用呀
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream
    at javax.mail.internet.MimeUtility.<clinit>(MimeUtility.java:1161)
    at javax.mail.internet.InternetAddress.setPersonal(InternetAddress.java:216)
    at org.apache.commons.mail.Email.createInternetAddress(Email.java:525)
    at org.apache.commons.mail.Email.addTo(Email.java:653)
    at org.apache.commons.mail.Email.addTo(Email.java:636)
    at com.herostart.framework.zh.mail.MailServiceImpl.sendMailBySynchronizationMode(MailServiceImpl.java:85)
    at com.herostart.framework.zh.mail.MailServiceImpl.sendMail(MailServiceImpl.java:52)
    at com.herostart.framework.zh.mail.MailServiceImpl.sendMail(MailServiceImpl.java:36)
    at com.herostart.framework.zh.mail.MailServiceImpl.main(MailServiceImpl.java:151)

在使用javamail发送邮件的时候,出现“java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream”这样的错误,
javax.mailjavax.activation这两个包已经在javaEE5当中属于基础包了,就是MyEclipse中已经自带了。但是里面的方法与最新JDK的javamail包不一致导致的错误
解决方法:
进入MyEclipse的安装目录下(这是我机器上的MyEclipse安装目录,也许你的不同)
C:UsersAdministratorMyEclipse 6.0myeclipseeclipsepluginscom.genuitec.eclipse.j2eedt.core_6.0.1.zmyeclipse601200710datalibrarysetEE_5
这个目录下,可以看到javaee.jar包,双击使用压缩软件打开把这个包文件,然后进到javax文件夹中,删除mail目录和activation目录,也可能是jar包。
删掉之后,在运行代码,就不会出现错误了,当然不要把整个javaee.jar包给删除了,他里面还有其它很多功能包,比如servlet,如果有引用 其它功能,还是会报错的.
最后添加最新的mail.jaractivation.jar就OK了
### 解决 Java 中 `NoClassDefFoundError` 关于 `WebSocketClient` 的问题 当遇到 `NoClassDefFoundError: org/java_websocket/client/WebSocketClient` 错误时,表明程序运行期间未能找到指定的类文件。这通常是因为缺少必要的依赖库或配置不正确。 #### 1. 添加缺失的依赖项 确保项目中包含了所需的 WebSocket 库。对于 Maven 项目,可以在 `pom.xml` 文件中加入如下依赖: ```xml <dependency> <groupId>org.java-websocket</groupId> <artifactId>Java-WebSocket</artifactId> <version>1.5.3</version> </dependency> ``` 如果使用 Gradle 构建工具,则应在 `build.gradle` 文件内添加相应条目: ```groovy implementation 'org.java-websocket:Java-WebSocket:1.5.3' ``` #### 2. 清理并重新构建项目 执行清理操作可以移除旧版本的编译产物,从而避免潜在冲突。具体命令取决于所使用的 IDE 或者构建工具: - 对于 Eclipse/IntelliJ IDEA 用户可以选择菜单中的 "Build -> Clean Project" - 使用 Maven 可通过终端输入 `mvn clean install` - 若采用 Gradle 则应运行 `gradle build --refresh-dependencies` #### 3. 验证 Classpath 设置 确认项目的 classpath 已经正确设置了所有外部 JAR 包的位置。特别是在手动管理依赖的情况下更要注意这一点。可以通过查看 IDE 的模块设置来检查是否有遗漏之处[^1]。 #### 4. 更新 Tomcat 版本及其插件 由于提到的是基于 Tomcat 启动的应用程序,因此还需要关注应用服务器本身的状态。有时较低版本可能无法完全支持某些特性或是存在兼容性问题。建议尝试升级到最新稳定版,并同步更新任何关联插件[^2]。 #### 5. 检查 Web Application 打包情况 考虑到应用程序是以 WAR 形式部署至容器内的事实,务必保证打包过程无误。特别是要留意是否将第三方库一同纳入最终制品之中。可通过解压已生成的 `.war` 文件来进行初步验证。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值