【问题标题】:java desktop and web application using the same filepath使用相同文件路径的 Java 桌面和 Web 应用程序
【发布时间】:2016-10-07 14:45:18
【问题描述】:
我编写了一个带有类(比如 ClassA)的桌面 Java 应用程序,它读取文件的内容、处理它并返回一些结果。使用
相对于项目指定文件名
文件输入 = new File("config.xml");
现在,我想将项目升级为 Web 项目。我编写了一个 servlet,它调用同一个 java 类(即 ClassA)来读取同一个文件的内容,但这次我收到一条错误消息,提示找不到文件。
如何重构我的代码,以便桌面版和网页版都能顺利运行。
【问题讨论】:
标签:
java
web-applications
desktop-application
filepath
【解决方案1】:
只需将文件 config.xml 复制到 Web 服务器上的适当位置,例如public_html/www/
Web 应用程序的“工作目录”不同 - 取决于您将其部署到的 Web 服务器的配置。
【解决方案2】:
如果你在没有指定路径的情况下读取文件,它是从当前目录读取的,你可以使用 System.getProperty("user.dir"); 访问它
因此,您可以尝试找出 System.getProperty("user.dir") 在您的 Web 应用程序中返回的值并将文件放在那里。
但这可能因环境和 servlet 服务器(Tomcat 等)而异,可能不是可靠的解决方案。
另一种方法是更改您的代码,使其从 user.home 目录中读取文件并将文件放在那里。