当前位置: 首页 > 知识库问答 >
问题:

Netbeans Maven项目中ResourceBundle的绑定类路径无效

祖波光
2023-03-14

我刚刚将我的项目移植到Maven,但我现在无法让我的代码识别出ResourceBundle应该加载的包的存在,这在以前工作得很好

这是我当前的项目结构:

├───main
│   └───java
│       └───pcd
│           ├───data
│           ├───gui
│           │   ├───base
│           │   ├───bundle
│           │   │   └ Bundle.properties
│           │   ├───dialog
│           │   └ MainFrame.java
│           ├───python
│           └───utils
└───test
    └───java

以前,我只能在mainframe.java内部使用这行代码导入包:

resourceBundle bundle=resourceBundle.getBundle(“pcd.gui.bundle.bundle”,locale.getDefault());

但这已经不起作用了。我尝试将src.main.java.放在它前面,不管有没有src,但它根本找不到捆绑包。

mainframe.java是pcd.gui包的一部分,只是为了说明一下,工作路径设置为main上面的两个文件夹,因此main的位置是:project/src/main,工作路径是project

我不确定我还能提供什么其他信息,因为我对使用Maven及其结构是新手。这个项目在迁移到Maven之前是一个ANT项目。我正在NetBeans中研究它。

共有1个答案

益何平
2023-03-14

这不起作用的原因是,在运行软件时,Maven并没有将资源文件(如以'.properties'结尾的文件)原生地包含到构建路径中。

最有效地解决此问题的方法是简单地创建一个新文件夹:src/main/resources',您将在其中放置.properties`文件。

然后,在.pom文件中包含以下内容:

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>2.7</version>
                <configuration>
                    <encoding>${project.encoding}</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>

这是一个告诉Maven识别您刚创建的新resources文件夹中的资源文件的插件。

最后,将文件的路径替换为代码中的路径:resourceBundle bundle=resourceBundle.getBundle(“bundle”,locale.getDefault());

此外,要小心检查代码中是否没有其他绑定正在初始化,因为如果您试图通过Swing GUI自动进行国际化,那么NetBeans有时会将其包含在不可编辑的代码中,就像我的情况一样。

 类似资料:
  • 我有3个项目,ProjectB,ProjectC。 当我构建ProjectB时,它没有任何问题。但是当我试图构建ProjectA时,它在控制台上出现以下错误而失败。 评估项目“:ProjectB”时出现问题。在项目:ProjectB中找不到路径为:ProjectC的项目。 build.gradle-ProjectC settings.gradle-ProjectC build.gradle - 项

  • 本文向大家介绍Java eclipse项目中项目的类路径是什么?,包括了Java eclipse项目中项目的类路径是什么?的使用技巧和注意事项,需要的朋友参考一下 您可以使用构建路径在eclipse项目中包含需要设置类路径的Jar文件 步骤1- 右键单击项目选择构建路径→配置构建路径。 步骤2-选择库,选择添加外部JAR ...按钮。 步骤3-然后浏览所需的jar文件所在的文件夹,选择它们并按打开

  • 我的冬眠。cfg。xml是: hibernate-configuration-3.0.dtd怎么可能从java项目路径中提取? 换句话说,我想使hibernate-configuration-3.0。dtd离线工作。

  • 问题内容: 我有一个带有大类路径的Java项目-许多项目是从不同的.jar文件中导入的,这些文件已作为依赖项添加(通过Maven)。 我正在寻找一种编程方式,以列出来自当前项目的类路径上的所有项,即,从其他库和Java运行时环境本身中 排除 所有导入的类路径项。 我需要在运行时执行此操作,即它应该在实际的当前类路径下工作。 有什么好方法吗? 问题答案: 除非您创建自己的元数据,否则无法执行此操作。

  • 我的应用程序服务器ibm WebSphere。我在应用程序服务器日志中得到以下错误。哪里可以设置websphere? [19.09.2012 14:56:54:940 EEST]0000000a SystemErr R SLF4J:类路径包含多个SLF4J绑定。 [19.09.2012 14:56:54:940 EEST]0000000a SystemErr R SLF4J:在[wsjar:fil

  • 在完成项目后,我收到了两条错误消息: > 在解决构建路径错误之前,无法构建项目。 未绑定的类路径容器:“method\u test”项目中的“JRE系统库[OSGi/Minimum-1.2]” 我想如果我找出第二个错误,第一个就会消失。然而,我在10.5.8 Mac上运行eclipse Juno,我无法从Oracle网站安装必要的JRE,因为它们与Mac不兼容。