2012-02-14 127 views
0

我需要在Linux環境中運行Java文件。如何在Linux中爲java文件提供XML路徑環境

由於部分代碼Java文件需要加載一個XML文件

請告訴我如何可以提供XML文件到java文件的路徑?

我可以提供這種方式嗎? (假設Java類文件和sample_config.xml是在同一文件夾?

Util.load("/sample_config.xml"); 

請讓我知道。非常感謝你。

回答

2

如果在同一文件夾改變"/sample_config.xml""sample_config.xml",作爲"/sample_config.xml"將尋求在根目錄下的XML文件(/):

Util.load("sample_config.xml"); 

編輯:這將只有"sample_config.xml"是在同一文件夾作爲工作在的Java進程正在執行中。請參閱Qwe的答案。

+0

'Util.load( 「sample_config.xml」)'不會是相對於類文件 – 2012-02-14 11:15:52

+0

@Qwe,你是正確的。我誤解了這個問題,並假設它意味着進程執行的目錄。 – hmjd 2012-02-14 11:36:48

1

您可以簡單地使用命令行參數。您的Java的主要方法有簽名:你通過在命令行上

凡是被通過args參數傳遞英寸所以,如果你在命令行做

java yourclass sample_config.xml 

,你就可以訪問它像這樣:

Util.load(args[0]); 
1

/指根文件系統文件夾中的* 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()); 
+0

+1實際閱讀的問題。 – hmjd 2012-02-14 11:46:14