代码一: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\,此时它无论如何也不可能按你所想去读到开发时的路径,因为代码二实际运行的时候文件已经不在你开发的路径上了。
添加回答
举报
0/150
提交
取消