gpt4 book ai didi

java - 未找到 ResourceBundle 文件,属性文件不在 jar 中

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:51:40 24 4
gpt4 key购买 nike

关于 resourcebundle 错误,我已经阅读了关于同一主题的其他问题,但我并没有变得更聪明。尝试了不同的东西,没有帮助。介绍一下背景:我开发了一个小应用程序 (JDK6),它可以自动进行一些平面文件解析和编辑。该应用首先从属性文件中读取一些数据。

重要:我希望能够更改属性文件。我不想把它放在 jar 文件中。

但是,即使使用我尝试创建的小示例应用程序,基于另一个问题/答案[此处][1]:

package restestapp;

import java.util.Locale;
import java.util.ResourceBundle;


public class ResourceBundleTester
{
public static void main(String[] args)
{
Locale locale = Locale.getDefault();
String basename ="myresource";
ResourceBundle resourceBundle = ResourceBundle.getBundle(basename, locale);
System.out.println(resourceBundle.getString("STARTING_MYAPP"));
}
}

两个文件都在这里:

/home/dakoina/Documents/ResTestapp/ResTestApp.jar
/home/dakoina/Documents/ResTestapp/myresource.properties

甚至

c:/temp/ResTestApp.jar
c:/temp/myresource.properties

但是当我运行它时,它给了我这个输出:

dakoina@ubuntu:~/Documents/ResTestapp$ java -cp /home/dakoina/Documents/ResTestapp/ -jar "ResTestApp.jar"
Exception in thread "main" java.util.MissingResourceException: Can't find bundle for base name myresource, locale en_US
at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1539)
at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1278)
at java.util.ResourceBundle.getBundle(ResourceBundle.java:805)
at restestapp.ResTestApp.main(ResTestApp.java:19)

在 Windows 中,同样...

c:\temp>java -jar ResTestApp.jar
Exception in thread "main" java.util.MissingResourceException: Can't find bundle
for base name myresource, locale en_US
at java.util.ResourceBundle.throwMissingResourceException(Unknown Source)
at java.util.ResourceBundle.getBundleImpl(Unknown Source)
at java.util.ResourceBundle.getBundle(Unknown Source)
at restestapp.ResTestApp.main(ResTestApp.java:19)
[1]: http://stackoverflow.com/questions/3742158/using-resourcebundle-with-an-external-file-java

我看不出哪里错了:/

最佳答案

-jar 意思是:从给定的 jar 和它在 list 中引用的所有 jar 组成类路径。所以 -cp 选项被忽略了。

你的命令行应该是:

java -cp /home/dakoina/Documents/ResTestapp;/home/dakoina/Documents/ResTestapp/ResTestApp.jar the.main.Class

也就是说,资源包用于加载国际化标签。如果您只想读取属性,最好使用 java.util.Properties 类。

关于java - 未找到 ResourceBundle 文件,属性文件不在 jar 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11667638/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com