我需要在Linux環境中運行Java文件。如何在Linux中爲java文件提供XML路徑環境
由於部分代碼Java文件需要加載一個XML文件
請告訴我如何可以提供XML文件到java文件的路徑?
我可以提供這種方式嗎? (假設Java類文件和sample_config.xml是在同一文件夾?
Util.load("/sample_config.xml");
請讓我知道。非常感謝你。
我需要在Linux環境中運行Java文件。如何在Linux中爲java文件提供XML路徑環境
由於部分代碼Java文件需要加載一個XML文件
請告訴我如何可以提供XML文件到java文件的路徑?
我可以提供這種方式嗎? (假設Java類文件和sample_config.xml是在同一文件夾?
Util.load("/sample_config.xml");
請讓我知道。非常感謝你。
如果在同一文件夾改變"/sample_config.xml"
到"sample_config.xml"
,作爲"/sample_config.xml"
將尋求在根目錄下的XML文件(/
):
Util.load("sample_config.xml");
編輯:這將只有"sample_config.xml"
是在同一文件夾作爲工作在的Java進程正在執行中。請參閱Qwe的答案。
您可以簡單地使用命令行參數。您的Java的主要方法有簽名:你通過在命令行上
凡是被通過args參數傳遞英寸所以,如果你在命令行做
java yourclass sample_config.xml
,你就可以訪問它像這樣:
Util.load(args[0]);
/
指根文件系統文件夾中的* nix,所以/sample_config.xml
是在根文件夾中的文件。
只是sample_config.xml
將相對於程序從哪裏開始的文件夾,而不是相對於類文件位置。
從Java類路徑加載文件(並且類在類路徑中爲)的最佳方式是通過資源加載機制。請按照此鏈接瞭解詳細信息:URL to load resources from the classpath in Java
或者,如果您無法更改資源加載方式,則需要使用Class.getResource獲取資源的URL並將路徑傳遞到Util.load
。
像這樣的東西應該工作你的情況:
// getResource returns URL relative to this class
URL url = this.getClass().getResource("sample_config.xml");
if(url != null) // if file is not there url will be null
Util.load(url.getPath());
+1實際閱讀的問題。 – hmjd 2012-02-14 11:46:14
'Util.load( 「sample_config.xml」)'不會是相對於類文件 – 2012-02-14 11:15:52
@Qwe,你是正確的。我誤解了這個問題,並假設它意味着進程執行的目錄。 – hmjd 2012-02-14 11:36:48