如何在servlet中打开文件?

时间:2013-12-01 15:40:26

标签: java servlets path

我正在尝试打开文件,但当前的CWD错误。我试图从/ROOT/app/WEB-INF/classes/pl/jcubic/Service.class

打开类文件

但当前工作目录使用:

    File root = new File(".");
    root.getAbsolutePath();

返回/var/lib/tomcat7/.路径,如何从servlet获取app目录(即使我更改名称或在Windows机器上运行,我也希望我的代码能够工作)。

3 个答案:

答案 0 :(得分:3)

你可以阅读。

InputStream input = getServletContext().getResourceAsStream("/abc.txt");

File file = new File(getServletContext().getRealPath("/abc.txt"));

答案 1 :(得分:2)

除非您的耳朵爆炸,否则您无法通过File API获取其内容。如上所述,您应该使用getResource。如果您希望使用展开的Web存档中的文件,则需要获取当前目录。使用ServletContext.getRealPath(),例如:

String path = getServletContext().getRealPath("/")+"/";
File config = new File(path + "WEB-INF/conf/tag_checker.xml");
File lists = new File(path + "WEB-INF/conf/lists.xml");

答案 2 :(得分:-1)

文件文件=新文件("文件路径");

进程exec = Runtime.getRuntime()。exec(" rundll32" +"" +" url.dll,FileProtocolHandler" +"& #34; + file.getAbsolutePath());