请问我在这里做错了什么。
我的天气应用程序可以生成并发送HTML电子邮件。使用下面的代码时,当我从Eclipse中运行它时一切正常。我的电子邮件被生成,它能够访问我的图像资源,并且它发送带有附件的电子邮件。
但是,当我通过运行"mvn install"来构建可执行的jar文件,并且使用"java -jar NameOfMyJar.jar"运行该jar文件时,对于我的图像资源,我会得到java.io.FileNotFound异常。
我知道我在访问图像资源方面肯定做错了什么,只是不理解为什么在未打包时可以正常工作,但打包成jar文件后就失败了。
非常感谢任何建议。
我的项目布局
我如何访问我的图像资源
我的天气应用程序可以生成并发送HTML电子邮件。使用下面的代码时,当我从Eclipse中运行它时一切正常。我的电子邮件被生成,它能够访问我的图像资源,并且它发送带有附件的电子邮件。
但是,当我通过运行"mvn install"来构建可执行的jar文件,并且使用"java -jar NameOfMyJar.jar"运行该jar文件时,对于我的图像资源,我会得到java.io.FileNotFound异常。
我知道我在访问图像资源方面肯定做错了什么,只是不理解为什么在未打包时可以正常工作,但打包成jar文件后就失败了。
非常感谢任何建议。
我的项目布局
我如何访问我的图像资源
//Setup the ATTACHMENTS
MimeBodyPart attachmentsPart = new MimeBodyPart();
try {
attachmentsPart.attachFile("resources/Cloudy_Day.png");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
堆栈跟踪
Exception in thread "main" java.lang.RuntimeException: javax.mail.MessagingException: IOException while sending message;
nested exception is:
java.io.FileNotFoundException: resources/Cloudy_Day.png (No such file or directory)
at Utilities.SendEmailUsingGmailSMTP.SendTheEmail(SendEmailUsingGmailSMTP.java:139)
at Utilities.SendEmailUsingGmailSMTP.SendWeatherEmail(SendEmailUsingGmailSMTP.java:66)
at Weather.Main.start(Main.java:43)
at Weather.Main.main(Main.java:23)
Caused by: javax.mail.MessagingException: IOException while sending message;
nested exception is:
java.io.FileNotFoundException: resources/Cloudy_Day.png (No such file or directory)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1167)
at javax.mail.Transport.send0(Transport.java:195)
at javax.mail.Transport.send(Transport.java:124)
at Utilities.SendEmailUsingGmailSMTP.SendTheEmail(SendEmailUsingGmailSMTP.java:134)
... 3 more
Caused by: java.io.FileNotFoundException: resources/Cloudy_Day.png (No such file or directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:146)
at javax.activation.FileDataSource.getInputStream(FileDataSource.java:97)
at javax.activation.DataHandler.writeTo(DataHandler.java:305)
at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1485)
at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:865)
at javax.mail.internet.MimeMultipart.writeTo(MimeMultipart.java:462)
at com.sun.mail.handlers.multipart_mixed.writeTo(multipart_mixed.java:103)
at javax.activation.ObjectDataContentHandler.writeTo(DataHandler.java:889)
at javax.activation.DataHandler.writeTo(DataHandler.java:317)
at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1485)
at javax.mail.internet.MimeMessage.writeTo(MimeMessage.java:1773)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1119)
... 6 more
/resources/Cloudy_Day.png
(路径前面加上/
) - Jens