为了账号安全,请及时绑定邮箱和手机立即绑定

servlet路径问题

servlet路径问题

九州编程 2019-05-23 11:29:50
代码一:packagecom.main.service;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importorg.dom4j.Document;importorg.dom4j.DocumentException;importorg.dom4j.Element;importorg.dom4j.io.SAXReader;importjava.io.PrintWriter;publicclassReadData{publicstaticvoidmain(String[]args){try{testSaxReader("person");System.out.println("---------");testSaxReader("隶属度");}catch(Exceptione){e.printStackTrace();}}publicstaticvoidtestSaxReader(Stringitem)throwsDocumentException,FileNotFoundException{SAXReadersaxReader=newSAXReader();System.out.println("工程路径:"+System.getProperty("user.dir"));//问题所在FileInputStreamfile=newFileInputStream("src/0625.xml");Documentdoc=saxReader.read(file);Elementmenu=doc.getRootElement();System.out.println(menu.getName());org.dom4j.Nodeperson=menu.selectSingleNode("/Menu//Item[@Title='"+item+"']");StringnodeValue=person.getText();System.out.println(nodeValue);Filefp=newFile("./data/"+item+".txt");PrintWriterpfp=newPrintWriter(fp);pfp.print(nodeValue);pfp.close();}}代码一有main方法,System.out.println("工程路径:"+System.getProperty("user.dir"));打印出来的结果是工程路径:E:\workspace\outer\javaConnectR,是我项目的路径。代码二:packagecom.main.service;importjava.awt.Graphics;importjava.awt.GraphicsConfiguration;importjava.awt.GraphicsDevice;importjava.awt.GraphicsEnvironment;importjava.awt.HeadlessException;importjava.awt.Image;importjava.awt.MediaTracker;importjava.awt.Toolkit;importjava.awt.Transparency;importjava.awt.image.BufferedImage;importjava.io.File;importjava.io.IOException;importjavax.imageio.ImageIO;importjavax.swing.ImageIcon;importjavax.swing.JFrame;importorg.rosuda.REngine.REXP;importorg.rosuda.REngine.Rserve.RConnection;importcom.main.util.Rservel;publicclassExecuteextendsJFrame{privatestaticfinallongserialVersionUID=1L;staticImageimg;publicREXPgetRobj()throwsException{System.out.println("getRobj()");RConnectionc=Rservel.getRConnection();c.eval("library(RColorBrewer)");c.eval("H
查看完整描述

2 回答

?
慕村9548890

TA贡献1884条经验 获得超4个赞

user.dir指向的是你启动JVM的地方,你可以看看这里
代码一是你从工程路径下启动的,但是代码二你的Servlet是被容器(Tomcat等等)加载进JVM的,而此时user.dir指的是这些容器的路径,这方面你需要了解一下容器是怎样运行的。
你要分清楚:开发环境、上线环境。
你在E:\workspace\outer\javaConnectR写代码,这是开发环境,但是当你打包成.war时,它会被容器解压到一个目录,比如你代码二中输出的E:\workspace\...\wtpwebapps\javaConnectR\,此时它无论如何也不可能按你所想去读到开发时的路径,因为代码二实际运行的时候文件已经不在你开发的路径上了。
                            
查看完整回答
反对 回复 2019-05-23
  • 2 回答
  • 0 关注
  • 258 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信