【问题标题】:Can we specify directory path with the property file while using ResourceBundle class in Java?在 Java 中使用 ResourceBundle 类时,我们可以用属性文件指定目录路径吗?
【发布时间】:2010-08-30 06:11:31
【问题描述】:

我想将我的属性文件放在某个文件夹中,但我无法读取它们,因为我们只能在 ResourceBundle 对象的静态 getBundle() 方法中指定包名称。

假设包是:myFile.properties
当前路径是:src
我想将我的属性文件保存在:src/temp

所以当我使用时:

ResourceBundle.getBundle("temp/myfile", currentLocale);

它抛出异常“找不到捆绑包”。我想要某种方式来指定路径。请建议我一些方法来做到这一点。

谢谢

【问题讨论】:

    标签: java resourcebundle


    【解决方案1】:

    使用这个:

    ResourceBundle.getBundle("temp.myfile", currentLocale);
    

    ResourceBundle.getBundle 调用中提供的baseName 应该是完全限定的类名。所以它必须用点分隔写。另请注意,这会使 temp 成为您的 java 代码中的一个包(我认为这不是一个好主意)。最好将属性文件放在像com.xyz.abc 这样的适当包中。然后你可以使用它访问它

    ResourceBundle.getBundle("com.xyz.abc.myfile", currentLocale);
    

    【讨论】:

    • 虽然我将“myFile.properties”放入一个完美的包中,但仍然发现它缺少@run。我按照你的建议说:“com.xyz.myFile”这对你有用吗
    • 我是否需要通过注释或使用注释在属性文件中提及某些内容?
    • 我把文件名弄混了。使用正确的文件名,它应该可以工作。
    • 我有一个文件“tagValue.properties”,复制到“src”和“src/temp”目录但是当我使用时:- bundle = ResourceBundle.getBundle("tagValue");它可以工作,但是当我使用时:- bundle = ResourceBundle.getBundle("temp.tagValue");它抛出“java.util.MissingResourceException:找不到基本名称 temp.tagValue 的包”
    • @abhin4v。你是对的,我的路径有问题。谢谢你。
    【解决方案2】:

    您可能使用了错误的文件名 (myfile != myFile)。

    对于类路径上 temp 目录中的文件 myFile.properties,此代码应该可以工作:

    ResourceBundle.getBundle("temp.myFile");
    

    【讨论】:

    • 我有一个文件“tagValue.properties”,复制到“src”和“src/temp”目录中,但是当我使用时:- bundle = ResourceBundle.getBundle("tagValue");它可以工作,但是当我使用时:- bundle = ResourceBundle.getBundle("temp.tagValue");它抛出“java.util.MissingResourceException:找不到基本名称 temp.tagValue 的包”
    • @Kuri - 检查你的类路径。我希望使用您的 ClassLoader 的 getResource("/temp/tagValue.properties"); 方法也会失败(返回 null)。如果没有关于运行时环境的更多信息(类路径参数、类二进制位置等),就无法诊断问题。
    • 是的,McDowell 先生,你是对的,它给了我 null for("temp/tagValue.properties") 但是当我将它与 ("tagValue.properties") 一起使用时,它给了我绝对路径为文件。好的,现在我遇到了问题。非常感谢。
    猜你喜欢
    • 2010-09-18
    • 2013-12-22
    • 2011-11-09
    • 1970-01-01
    • 1970-01-01
    • 2010-12-02
    • 1970-01-01
    • 2023-03-18
    相关资源
    最近更新 更多