![](/img/trans.png)
[英]How do I use a classloader to get inputstream on a model.zip file where the zip file is wrapped in a .jar file in classpath
[英]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.