簡體   English   中英

如何使用Java ClassLoader從類路徑加載文件?

[英]How do I use the Java ClassLoader to load a file fromthe classpath?

我想使用ClassLoader加載Properties類的屬性文件。 為了討論的目的,我簡化了以下代碼以刪除錯誤處理:

loader = this.getClass().getClassLoader();
in = loader.getResourceAsStream("theta.properties");
result = new Properties();
result.load(in);

在與此類相同的目錄中,我有文件“theta.properties”,但InputStream始終為null。 我把文件放在錯誤的地方嗎? 我正在使用eclipse及其設置將類文件構建到源文件夾 - 所以這應該不是問題。

我在JavaDoc中找不到任何東西讓ClassLoader告訴我正在搜索什么類路徑。

通過使用getClass().getClassloader()您可以從根路徑目錄中查找“theta.properties”。 只需使用getClass().getResourceAsStream()來獲取相對於該類的資源。

如果文件與類位於同一目錄中,則必須將類的包作為目錄作為前綴。

所以,如果您的包裹是:

package com.foo.bar;

然后你的代碼是:

.getResourceAsStream("com/foo/bar/theta.properties");

您可以使用ResourceBundle

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM