包 javax.mail 和 javax.mail.internet 不存在
Posted
技术标签:
【中文标题】包 javax.mail 和 javax.mail.internet 不存在【英文标题】:package javax.mail and javax.mail.internet do not exist 【发布时间】:2011-09-30 04:41:46 【问题描述】:当我编译一个包含以下 2 个导入语句的简单代码时:
import javax.mail.*
import javax.mail.internet.*
我收到以下消息:
package javax.mail does not exist
package javax.mail.internet does not exist
为什么会出现这个错误?
这是我的代码:
import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;
class tester
public static void main(String args[])
Properties props = new Properties();
props.put("mail.smtp.com" , "smtp.gmail.com");
Session session = Session.getDefaultInstance( props , null);
String to = "me@gmail.com";
String from = "from@gmail.com";
String subject = "Testing...";
Message msg = new MimeMessage(session);
try
msg.setFrom(new InternetAddress(from));
msg.setRecipient(Message.RecipientType.TO , new InternetAddress(to));
msg.setSubject(subject);
msg.setText("Working fine..!");
catch(Exception exc)
【问题讨论】:
【参考方案1】:你需要下载JavaMail API,并将相关的jar文件放到你的classpath中。
【讨论】:
【参考方案2】:Download javax.mail.jar
并使用以下步骤将其添加到您的项目中:
-
解压 mail.jar 文件
右键单击项目节点(JavaMail),单击属性更改项目属性
现在转到库选项卡
单击添加 JAR/文件夹按钮。将打开一个窗口。
浏览到解压 Mail.jar 的位置
按确定
编译您的程序以检查 JAR 文件是否已成功包含
【讨论】:
您在哪里获取它的链接现在已经过时了。另外,它也不叫mail.jar,但我相信是javax.mail.jar。 . .如果它应该被称为 mail.jar,那实际上可能就是我偶然发现这个老问题的原因!【参考方案3】:如果使用 maven,只需添加到您的 pom.xml:
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.5.0-b01</version>
</dependency>
当然,你需要查看current version。
【讨论】:
【参考方案4】:您需要javax.mail.jar
库。
从Java EE JavaMail GitHub page 下载它并将其添加到您的 IntelliJ 项目中:
-
下载
javax.mail.jar
导航到File > Project Structure...
转到“库”选项卡
点击+
按钮(添加新项目库)
浏览到javax.mail.jar
文件
单击“确定”应用更改
【讨论】:
他们将其发布到 maven mvnrepository.com/artifact/com.sun.mail/javax.mail【参考方案5】:对于仍然希望使用上述 IMAP 库但需要使用 gradle 的任何人,只需将此行添加到您的模块 gradle 文件(不是主 gradle 文件)
compile group: 'javax.mail', name: 'mail', version: '1.4.1'
下载 .jar 文件的链接对我来说已经死了,所以不得不选择其他路线。
希望这会有所帮助:)
【讨论】:
【参考方案6】:您可能没有必要的 .jar 文件来访问 Java Mail API。这些可以从here下载。
【讨论】:
【参考方案7】:您需要 javax.mail.jar 库。从https://www.oracle.com/java/technologies/javamail-releases.html 下载它并将其添加到您的 Eclipse 项目中:
如果你使用的是
-
右键单击项目,转到构建路径 -> 配置构建路径 -> 库 -> 模块路径 -> 添加外部 Jar。
浏览到 javax.mail.jar 文件
点击“应用并关闭”。
在 module-info.java 下,添加:
module TestApp
**requires mail;**
【讨论】:
【参考方案8】:您必须像这样设置mail.jar
和activation.jar
文件的类路径:
打开命令提示符:
c:\user>set classpath=%classpath%;d:\jarfiles\mail.jar;d:\jarfiles\activation.jar;.;
如果您没有这两个文件,请下载它们here
【讨论】:
【参考方案9】:Download Java 邮件罐。
解压下载的文件。
复制“.jar”文件并粘贴到ProjectName\WebContent\WEB-INF\lib
文件夹中
右键单击项目并转到属性
选择 Java 构建路径,然后选择库
添加 JAR...
从ProjectName\WebContent\WEB-INF\lib
中选择.jar文件并点击确定
就是这样
【讨论】:
【参考方案10】:有同样的问题。显然,这些 .jar 已包含在 Java
【讨论】:
【参考方案11】:您需要 mail.jar 和 activation.jar 来构建 javamail 应用程序
【讨论】:
我在javamail api中没有找到activation.jar。但是我的程序现在没有错误了! ?? @grassPro 和未来的推荐人:“注意:除非您使用 Java SE 6 或更新版本,否则您还需要提供 javax.activation 包的 JavaBeans Activation Framework (JAF) 扩展。”这篇笔记来自 Oracle 的网站 @Viren ...这个“激活包”还需要吗?该项目现在是一个开源项目,独立于 Oracle,我没有在材料中看到它的提及,但是,我第一个尝试使用它的项目还没有工作!【参考方案12】:从http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-eeplat-419426.html#javamail-1.4.5-oth-JPR下载“javamail1_4_5.zip”文件
解压 zip 文件并将相关的 jar 文件(“mail.jar”)放在类路径中
【讨论】:
【参考方案13】:我刚刚自己解决了这个问题,希望对您有所帮助。我的项目使用 JDK 1.8 和 JavaEE 7 在 GlassFish 4、Eclipse MARS 上运行。
首先,您可以在提取的glassfish
文件夹中找到javax.mail.jar
:glassfish4->glassfish->modules
接下来,在 Eclipse 中,在资源管理器中右键单击您的项目并导航到以下内容:Properties->Java Build Path->Libraries->Add External JARs->
转到上述文件夹以添加 javax.mail.jar
【讨论】:
以上是关于包 javax.mail 和 javax.mail.internet 不存在的主要内容,如果未能解决你的问题,请参考以下文章
学习笔记——mail发送javax.mail.AuthenticationFailedException: failed to connect at javax.mail.Service.connec
如何解决 javax.mail.AuthenticationFailedException 问题?
找不到所需的类(javax.activation.DataHandler 和 javax.mail.internet.MimeMultipart)。附件支持已禁用
使用 base 64 编码的 javax.mail.Authenticator