Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从属性文件加载字符串时缺少ResourceException_Java_Maven_Resourcebundle - Fatal编程技术网

Java 从属性文件加载字符串时缺少ResourceException

Java 从属性文件加载字符串时缺少ResourceException,java,maven,resourcebundle,Java,Maven,Resourcebundle,有人知道为什么绑定到.jar时找不到属性文件吗? .jar运行,但在尝试加载字符串时遇到运行时异常 执行时堆栈跟踪:Messages.getString(“ui.frameTitle”) Caused by: java.util.MissingResourceException: Can't find bundle for base name com.justc0de.tools.messages, locale en_US at java.util.ResourceBundle.th

有人知道为什么绑定到
.jar
时找不到属性文件吗?
.jar
运行,但在尝试加载
字符串时遇到运行时异常

执行时堆栈跟踪:
Messages.getString(“ui.frameTitle”)

Caused by: java.util.MissingResourceException: 
Can't find bundle for base name com.justc0de.tools.messages, locale en_US
    at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1525)
<project 
    xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>
    <groupId>app</groupId>
    <artifactId>app</artifactId>
    <version>0.1</version>
    <name>app</name>
    <description>app_packaged</description>
    <packaging>jar</packaging>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <build>
        <sourceDirectory>src</sourceDirectory>
        <resources>
            <resource>
                <directory>src</directory>
                <excludes>
                    <exclude>**/*.java</exclude>
                </excludes>
            </resource>
        </resources>

        <plugins>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                    <descriptors>
                        <descriptor>src/assembly/assembly.xml</descriptor>
                    </descriptors>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id>  <!-- this is used for inheritance merges -->
                        <phase>verify</phase>  <!-- bind to the verify phase, to execute after package phase -->
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>appassembler-maven-plugin</artifactId>
                <version>1.7</version>
                <configuration>
                    <programs>
                        <program>
                            <mainClass>com.justc0de.game.Main</mainClass>
                            <id>thegame</id>
                        </program>
                    </programs>
                    <repositoryName>lib</repositoryName>
                    <repositoryLayout>flat</repositoryLayout>
                    <assembleDirectory>${project.build.directory}/${project.artifactId}</assembleDirectory>
                </configuration>
                <executions>
                    <execution>
                        <id>prepare-assembly</id>  <!-- this is used for inheritance merges -->
                        <phase>package</phase>  <!-- bind to the package phase -->
                        <goals>
                            <goal>assemble</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <dependencies>
        <dependency>
            <groupId>org.jogamp.gluegen</groupId>
            <artifactId>gluegen-rt-main</artifactId>
            <version>2.1.5-01</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>
</project>
项目目录设置:

这是我的类,用于从
属性
文件和
消息中检索字符串。java
位于
src/main/java/
中:

package com.justc0de.tools;

import java.util.MissingResourceException;
import java.util.ResourceBundle;

public class Messages {
    private static final String BUNDLE_NAME = "com.justc0de.tools.messages"; //$NON-NLS-1$

    private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);

    private Messages() {
    }

    public static String getString(String key) {
        try {
            return RESOURCE_BUNDLE.getString(key);
        } catch (MissingResourceException e) {
            return '!' + key + '!';
        }
    }
}
这是我的
POM.xml

Caused by: java.util.MissingResourceException: 
Can't find bundle for base name com.justc0de.tools.messages, locale en_US
    at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1525)
<project 
    xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>
    <groupId>app</groupId>
    <artifactId>app</artifactId>
    <version>0.1</version>
    <name>app</name>
    <description>app_packaged</description>
    <packaging>jar</packaging>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <build>
        <sourceDirectory>src</sourceDirectory>
        <resources>
            <resource>
                <directory>src</directory>
                <excludes>
                    <exclude>**/*.java</exclude>
                </excludes>
            </resource>
        </resources>

        <plugins>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                    <descriptors>
                        <descriptor>src/assembly/assembly.xml</descriptor>
                    </descriptors>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id>  <!-- this is used for inheritance merges -->
                        <phase>verify</phase>  <!-- bind to the verify phase, to execute after package phase -->
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>appassembler-maven-plugin</artifactId>
                <version>1.7</version>
                <configuration>
                    <programs>
                        <program>
                            <mainClass>com.justc0de.game.Main</mainClass>
                            <id>thegame</id>
                        </program>
                    </programs>
                    <repositoryName>lib</repositoryName>
                    <repositoryLayout>flat</repositoryLayout>
                    <assembleDirectory>${project.build.directory}/${project.artifactId}</assembleDirectory>
                </configuration>
                <executions>
                    <execution>
                        <id>prepare-assembly</id>  <!-- this is used for inheritance merges -->
                        <phase>package</phase>  <!-- bind to the package phase -->
                        <goals>
                            <goal>assemble</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <dependencies>
        <dependency>
            <groupId>org.jogamp.gluegen</groupId>
            <artifactId>gluegen-rt-main</artifactId>
            <version>2.1.5-01</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>
</project>

4.0.0
应用程序
应用程序
0.1
应用程序
app_打包
罐子
UTF-8
src
src
**/*.爪哇
maven汇编插件
2.4
src/assembly/assembly.xml
组装
验证
仅有一个的
org.codehaus.mojo
appassembler maven插件
1.7
com.justc0de.game.Main
游戏
解放党
平的
${project.build.directory}/${project.artifactId}
准备装配
包裹
集合
org.jogamp.gluegen
gluegen rt干管
2.1.5-01
编写
这就成功了

<resource>
    <directory>src/main/resources</directory>
    <excludes>
        <exclude>**/*.java</exclude>
    </excludes>
</resource>

src/main/resources
**/*.爪哇