【发布时间】:2013-12-01 15:40:26
【问题描述】:
我正在尝试打开一个文件,但当前的 CWD 错误。我试图从/ROOT/app/WEB-INF/classes/pl/jcubic/Service.class打开类文件
但当前工作目录使用:
File root = new File(".");
root.getAbsolutePath();
返回/var/lib/tomcat7/. 路径,如何从servlet 中获取app 目录(我希望我的代码即使更改名称或在Windows 机器上运行也能正常工作)。
【问题讨论】:
-
您想从您的网络应用程序中读取您的网络应用程序中存在的文件吗?
-
您是否试图打开包含在您的 servlet 中的文件?如果是这样,请不要使用
FileAPI;完全不需要容器解压您的 servlet。请改用getResource方法。 -
@Makky 是的,但我不使用 WAR 文件仅符号链接到
webapps目录中的我的应用程序。我重新编译了一个文件(使用我自己的类加载器加载它)而不需要部署,它在我使用绝对路径时工作。 -
@chrylis 如何使用 getResource 打开文件(我需要将其读取为二进制文件)?此外,我可能想打开一个在我运行应用程序时不存在的文件。
-
一旦部署,您将无法在 Web 应用程序中创建该文件。可以阅读战争里面的文件stackoverflow.com/questions/3888226/…