无法从战争中获取文件

时间:2014-01-14 21:03:48

标签: java jboss classpath

我需要从战争中获取属性文件。

String fileName = loadFileName();
try {
    FileInputStream fis = new FileInputStream(new File(Thread.currentThread().getContextClassLoader().getResource(fileName).toURI()));
    property.load(fis);
}
.........

private String loadFileName(){
    if(currentLocale.equals(new Locale("en"))){
        return "file:///locale/output/language.properties";
    } else {
        return "file:///locale/output/language_ru.properties";
    }
}

此文件位于main / resources / locale / output文件夹中。不幸的是,这种方法不起作用,所有属性值都为null。如何正确加载战争文件?服务器:JBoss AS 7

enter image description here

1 个答案:

答案 0 :(得分:1)

WAR是一个存档文件。您无法将归档中的“文件”作为文件进行处理。只需通过#getResourceAsStream(String name)打开资源即可。 name可能是/locale/output/language.properties

当然你不应该自己建立i18n。