[英]How to access an existing directory in your project without knowing it's path Java
[英]How to create a file in a eclipse project directory without knowing the exact path?
我的 Eclipse Web 應用程序項目中有一個 java class 生成 Z3501BB093D363ED810B867 文件。 此 xml 文件將用於通過 AJAX 調用在 JSP 頁面中顯示其內容。 假設我想導出項目並將其發送給另一個用戶,然后該用戶將在另一台 PC 上使用它。 即使我不知道它在新計算機上的路徑,如何在項目目錄中創建 xml 文件?
大多數 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 時,您可以嵌入 static 內容,但寫入不起作用。 所以當你運行 JSP 頁面類加載開始發揮作用。 不同的用途在服務器端被沙盒化到它們自己的上下文中。 因此,總體而言,共享相同的文件和/或磁盤空間可能不是一個好主意。
當您有文件數據庫或類似文件時,您應該有一個服務器配置變量來將路徑設置為您的服務器上使用的值。 The complete configuration in your JSP environment is handeled in the web.xml file: https://docs.oracle.com/cd/E13222_01/wls/docs81/webapp/web_xml.html
順便說一下,這是 J2EE 容器的標准方式。
如果您有一個本地項目而不是完全成熟的生產環境,最簡單的選擇可能是讀取一個環境變量,其中包含您要在您的機器上使用的本地路徑。
請注意,如果您想從 J2EE 容器(=運行 JSP 的軟件)中寫入文件,則可能需要在 Tomcat/Glassfish/Wildfly/... 中設置安全規則。
一種方法是將路徑作為系統屬性-Dproperty=value
傳遞(例如 java -DxmlDir="C:\xml" SomeClass)。 在 Eclipse 上,您可以在運行配置中添加它,然后我認為它在 Arguments 或環境中。 要訪問該屬性,只需執行System.getProperty("xmlDir")
。 在新計算機上,他們可以指定希望 XML 文件駐留的位置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.