当我编译一个包含以下2个import语句的简单代码时:
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) {
}
}
}
答案 0 :(得分:58)
您需要下载JavaMail API,并将相关的jar文件放在类路径中。
答案 1 :(得分:12)
Download javax.mail.jar
并使用以下步骤将其添加到您的项目中:
答案 2 :(得分:10)
如果使用maven,只需添加到您的pom.xml:
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.5.0-b01</version>
</dependency>
当然,您需要查看current version。
答案 3 :(得分:5)
您需要javax.mail.jar
库。
从Java EE JavaMail GitHub page下载并将其添加到IntelliJ项目中:
javax.mail.jar
File > Project Structure...
+
按钮(添加新项目库)javax.mail.jar
文件答案 4 :(得分:2)
可能是您没有必要的.jar文件,可以访问Java Mail API。这些可以从here下载。
答案 5 :(得分:1)
您必须设置mail.jar
和activation.jar
文件的类路径:
打开命令提示符:
c:\user>set classpath=%classpath%;d:\jarfiles\mail.jar;d:\jarfiles\activation.jar;.;
如果您没有这两个文件,请下载here
答案 6 :(得分:1)
ProjectName\WebContent\WEB-INF\lib
文件夹从ProjectName\WebContent\WEB-INF\lib
中选择.jar文件,然后点击确定
这都是
答案 7 :(得分:1)
对于仍然希望使用上述IMAP库但需要使用gradle的人,只需将此行添加到您的modules gradle文件(而不是主gradle文件)
compile group: 'javax.mail', name: 'mail', version: '1.4.1'
下载.jar文件的链接对我来说已经死了,所以不得不选择其他路线。
希望这会有所帮助:)
答案 8 :(得分:0)
你需要mail.jar和activation.jar来构建javamail应用程序
答案 9 :(得分:0)
提取zip文件并将相关的jar文件(“mail.jar”)放在类路径
中答案 10 :(得分:0)
有同样的问题。显然,这些.jars已随Java <= v8.x一起提供,但现在已经不包含了。因此,必须分别下载它们,并将它们放置在适当的类路径中,如以上几个人所强调的那样。我知道新的Java是模块化的,因此可能更轻巧(这确实是一件好事,因为旧的设置是一个庞然大物)。另一方面,正如我们所看到的,这破坏了许多旧的构建设置。由于修复这些问题的时间不向Oracle收取,我想这使他们的决定变得容易了...