Maven java.io.FileNotFoundException
我正在和Maven一起开发一个项目。在一个发送电子邮件的类中,在运行和开发模式下,我得到以下错误:由以下原因引起:java.io.FileNotFoundException:jQuery/images/logo.png Ficheiro ou directoria inexistent=>translation=未找到文件或目录 我尝试了很多路径,比如./jQuery/images/logo.png、/jQuery/images/logo.png等。完整的相对路径是:src/main/webapp/jQuery/images/logo.png 在目标文件夹中,路径是project-1.0-SNAPSHOT/jQuery/images/logo.png。 在war文件中,是jQuery/images/logo.png 我认为这并不重要,但我使用NetBeans 7.1.1作为IDE 我发现运行时返回的绝对路径是/home/user/apache-tomcat-7.0.22/bin/jQuery/images/logo.png!。。。这不是项目路径 如何在Maven项目中获取webapp文件夹中的文件以及Java类的后代 代码是:Maven java.io.FileNotFoundException,maven,filenotfoundexception,Maven,Filenotfoundexception,我正在和Maven一起开发一个项目。在一个发送电子邮件的类中,在运行和开发模式下,我得到以下错误:由以下原因引起:java.io.FileNotFoundException:jQuery/images/logo.png Ficheiro ou directoria inexistent=>translation=未找到文件或目录 我尝试了很多路径,比如./jQuery/images/logo.png、/jQuery/images/logo.png等。完整的相对路径是:src/main/webap
MimeBodyPart attachmentPart = null;
FileDataSource fileDataSource = null;
for (File a : attachments) {
System.out.println(a.getAbsolutePath());
attachmentPart = new MimeBodyPart();
fileDataSource = new FileDataSource(a) {
@Override
public String getContentType() {
return "application/octet-stream";
}
};
attachmentPart.setDataHandler(new DataHandler(fileDataSource));
attachmentPart.setFileName(fileDataSource.getName());
multipart.addBodyPart(attachmentPart);
}
msg.setContent(multipart);
msg.saveChanges();
Transport transport = session.getTransport("smtp");
transport.connect(host, from, "password");
transport.sendMessage(msg, msg.getAllRecipients());
路径…/apache-tomcat-7.0.22/bin/jQuery/。。。这真的很奇怪。bin包含Tomcat的脚本,它不应该包含任何代码,也不应该包含任何与应用程序相关的资源。即使您在context/bin中部署应用程序,这些资源最终也会位于“…/apache-tomcat-7.0.22/webapps/bin/…”下
这看起来像是早期部署中的错误
现在回到你的问题上来。要获取web应用程序的资源路径,请使用以下代码:
String absolutePath = getServletContext().getRealPath("/jQuery/images/logo.png");
显示您用于打开文件的代码。感谢您的快速响应!我没有使用servlet。是一个普通的Java类,如果我可以这样称呼它。。。该类中的公共类EmailsManager{…},其System.getPropertyjava.class.path为:/home/user/apache-tomcat-7.0.22/bin/bootstrap.jar:/home/rcc/apache-tomcat-7.0.22/bin/tomcat-juli.jar。这意味着什么?我们做到了!谢谢你,亚伦。我在调用Java类的JSP中使用了您的建议。JSP中使用的新代码是:String attachment=String request.getParameterattachment;//单个演示文件字符串attachmentralpath=request.getSession.getServletContext.getRealPathattachment+/;ArrayList attachments=新的ArrayList;attachments.addnew文件AttachmentCentralPath;EmailsManager电子邮件=新的EmailsManager邮件、端口、发件人、收件人、主题、正文、附件;抱歉,代码行应该分开,但我没有找到这样做的方法。