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

时间:2021-06-07 08:21:08

标签: java xml eclipse jsp path

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

2 个答案:

答案 0 :(得分:0)

大多数 Java 项目都有标准化的项目结构。 例如Maven 如下所示:

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

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

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

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

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

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

答案 1 :(得分:0)

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