如何在不知道确切路径的情况下在eclipse项目目录中创建文件



我在Eclipse web应用程序项目中有一个java类,它生成一个XML文件。这个xml文件将用于通过AJAX调用在JSP页面中显示其内容。假设我想导出项目并将其发送给另一个用户,然后该用户将在另一台电脑上使用它。即使我不知道它在新电脑上的路径,我如何在项目目录中创建xml文件?

大多数Java项目都有一个标准化的项目结构。例如,Maven看起来如下:

my-app
|-- pom.xml
`-- src
|-- main
|   |-- java
|   |   `-- com
|   |       `-- mycompany
|   |            `-- app
|   |               `-- App.java
|   `-- resources
|
`-- test
`-- java
`-- com
`-- mycompany
`-- app
`-- AppTest.java

Java应用程序将创建的具有相对路径的文件将在本地运行时从resources文件夹中读取(当然,这可以在Eclipse的运行时环境中进行配置,也可以在Java/javac CLI命令中进行调整(。请注意,打包的Java程序不能写入打包的JAR或WAR文件。因此,当创建一个JAR/WAR时,您可以嵌入静态内容,但编写不起作用。因此,当您运行JSP页面时,类加载就发挥了作用。不同的用途在服务器端被沙盒到它们自己的上下文中。因此,总体而言,共享相同的文件和/或磁盘空间可能不是一个好主意。

当您有一个文件DB或类似的文件时,您应该有一个服务器配置变量来设置服务器上使用的值的路径。JSP环境中的完整配置在web.xml文件中提供:https://docs.oracle.com/cd/E13222_01/wls/docs81/webapp/web_xml.html

顺便说一句,这是J2EE容器的标准方式。

如果您有一个本地项目,而不是一个完全完善的生产环境,最简单的选择可能是读取一个带有您想在机器上使用的本地路径的环境变量。

请注意,如果您想从J2EE容器(即运行JSP的软件(中编写文件,则可能需要在Tomcat/Glassfish/Wardfly/中设置安全规则。。。

一种方法是将路径作为系统属性-Dproperty=value传递(例如,java-DxmlDir="C:\xml"SomeClass(。在Eclipse上,您可以在Run Configurations中添加它,然后我认为它可以在Arguments或Environment中添加。要访问属性,只需执行System.getProperty("xmlDir")即可。在新计算机上,他们可以指定XML文件的驻留位置。

最新更新