缺少Java运行时jar

时间:2016-09-23 09:35:06

标签: java

我是java新手,

我正在尝试从我的java类发送电子邮件,我在Windows中尝试了代码,它最初有一些问题。将mail-1.4.jar放入vis-timeline-graph2d.min.js后,它运行正常。

我刚将其移至我的服务器(AWS),将此java文件放在一个文件夹中并尝试运行此类。我将mail-1.4.jar放在路径C:\Program Files\Java\jdk1.8.0_91\jre\lib\ext

我的java课程:

/opt/jdk1.7.0_79/jre/lib/ext

在执行import java.io.IOException; import java.net.URISyntaxException; import java.util.Properties; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.AddressException; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; public class Mail { public static void main(String[] args) throws IOException, URISyntaxException, AddressException, MessagingException { String BODY = "\n\n Regards Admin."; String SUBJECT = "SUBJECT"; String TO = "fg@gddgh.com"; final String FROM = "no-reply@dfh.com"; final String SMTP_USERNAME = "SMTP_USERNAME"; final String SMTP_PASSWORD = "SMTP_PASSWORD"; final String HOST = "email-smtp.us-west-2.amazonaws.com"; String message = "Email successfully sent"; Properties props = System.getProperties(); props.put("mail.transport.protocol", "smtp"); props.put("mail.smtp.port", 25); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.starttls.enable", "true"); props.put("mail.smtp.starttls.required", "true"); Session session = Session.getDefaultInstance(props); MimeMessage msg = new MimeMessage(session); msg.setFrom(new InternetAddress(FROM)); msg.setRecipient(Message.RecipientType.TO, new InternetAddress(TO)); msg.setSubject(SUBJECT); msg.setContent(BODY, "text/plain"); Transport transport = session.getTransport(); try { transport.connect(HOST, SMTP_USERNAME, SMTP_PASSWORD); transport.sendMessage(msg, msg.getAllRecipients()); System.out.println(message); } catch (Exception ex) { message = "Email not sent to the given ID"; System.out.println(message); } finally { transport.close(); } } } 命令时编译良好,但无法运行此类。执行javac Mail.java

时,我遇到以下异常
java Mail

2 个答案:

答案 0 :(得分:0)

您已在本地环境中做得很好:您已将JavaMail安装到JDK扩展目录(jre/lib/ext)中。因此,您必须将其保存到AWS环境中的同一目录。

并非所有jre/lib目录中的库都是系统加载的,但jre/lib/ext中的库是。

请参阅Oracle's Documentation

  

JRE由图中突出显示的框内的那些目录组成。无论您的JRE是独立的还是JDK软件的一部分,JRE目录的lib / ext中的任何JAR文件都会被运行时环境自动视为扩展。

答案 1 :(得分:0)

看来你没有把jar包含在openJdk中。

尝试将jar添加到openJdk pathToOpenJdk/jre/lib/ext文件夹中。它应该有用。

希望这有帮助。