2014-08-31 58 views
0

有誰知道爲什麼當捆綁成一個.jar沒有找到屬性文件?
.jar運行,但遇到嘗試加載String當運行時異常。MissingResourceException異常加載字符串時從屬性文件

堆棧跟蹤執行時: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) 

項目目錄設置:

enter image description here

這是我從properties文件中檢索串類,並Messages.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 ..

<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> 

回答

0

這奏效了..

<resource> 
    <directory>src/main/resources</directory> 
    <excludes> 
     <exclude>**/*.java</exclude> 
    </excludes> 
</resource> 
相關問題