2013-08-19 87 views
0

更新:「找不到主類」原來是一個紅鯡魚:在public static void main(String[] args)之前,我的班級嘗試從未包含在JAR中的文件加載資源束。未能加載此資源所產生的報告,導致我錯了方向:Eclipse/Maven:「無法找到主類」錯誤雖然構建可執行文件JAR

Caused by: java.util.MissingResourceException: Can't find bundle for base name propFile, locale en_US 
     at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1427) 
     at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1250) 
     at java.util.ResourceBundle.getBundle(ResourceBundle.java:705) 
     at com.foo.bar.MyApp(MyApp.java:103) 
Could not find the main class: com.foo.bar.MyApp. Program will exit. 

我在Win 7開發與Eclipse朱諾和JDK 1.6_45,32位64位。我使用mvn clean install調用生成可執行JAR。

當我嘗試啓動我收到應用程序「找不到主類」或「無法加載主類清單屬性」 類似的地面已經覆蓋herehere。我已經閱讀了這些答案和basic maven examples,但我仍然沒有通過可執行JAR結束 。

我試圖既java -jar MyApp-jar-with-dependenciesjava -cp MyApp-jar-with-dependencies com.foo.bar.MyApp調用執行應用程序

我覺得特別困惑的MANIFEST.MF(在JAR中的META-INF內contined)專門列出我的目標主類,和MyApp.class文件存在於目錄樹中正確的位置(com \ foo \ bar \ MyApp.class)。

在開發過程中,我重構了幾次包名和類名。這個動作可能導致了一些引用/類路徑呃逆?主要班級查找失敗的地方還有哪些地方?

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

    <parent> 
     [...] 
    </parent> 

    <groupId>com.foo.bar</groupId> 
    <artifactId>MyApp</artifactId> 
    <packaging>jar</packaging> 
    <version>2.0.0.0-SNAPSHOT</version> 
    <name>MY APP</name> 

    <url>http://maven.apache.org</url> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <issues-product>APP</issues-product> 
     <issues-component>MY_APP</issues-component> 
    </properties> 

    <dependencies> 
    [...] 
    </dependencies> 

    <build> 
     <finalName>${project.artifactId}</finalName> 
     <plugins> 
     <plugin> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.3.2</version> 
      <configuration> 
      <source>1.6</source> 
      <target>1.6</target> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-checkstyle-plugin</artifactId> 
      <version>${maven.checkstyle.version}</version> 
      <configuration> 
      [...] 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-pmd-plugin</artifactId> 
      <version>${maven.pmd.version}</version> 
      <configuration> 
       [...] 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-javadoc-plugin</artifactId> 
      <version>${maven.javadoc.version}</version> 
     </plugin> 
     <plugin> 
     <artifactId>maven-assembly-plugin</artifactId> 
     <version>2.2.2</version> 
     <configuration> 
      <descriptorRefs> 
      <descriptorRef>jar-with-dependencies</descriptorRef> 
      </descriptorRefs> 
      <archive> 
      <manifest> 
       <addClasspath>true</addClasspath> 
       <mainClass>com.foo.bar.MyApp</mainClass> 
      </manifest> 
      </archive> 
     </configuration> 
     <executions> 
      <execution> 
      <phase>package</phase> 
      <goals> 
       <goal>single</goal> 
      </goals> 
      </execution> 
     </executions> 
     </plugin> 
     </plugins> 
     <pluginManagement> 
     [...] 
     </pluginManagement> 
    </build> 

    <reporting> 
     [...] 
    </reporting> 

    <scm> 
     [...] 
    </scm> 
</project> 

我的輸出JAR中MANIFEST.MF:

Manifest-Version: 1.0 
Archiver-Version: Plexus Archiver 
Created-By: Apache Maven 
Built-By: myname 
Build-Jdk: 1.6.0_45 
Main-Class: com.foo.bar.MyApp 

回答

1

我不知道爲什麼你不工作,這裏是一個cut-從我工作的maven項目中粘貼n貼。您應該只需更換com.pictureu.mains.MainGui與您的主要類別進行測試

 <plugin> 
      <artifactId>maven-assembly-plugin</artifactId> 
      <configuration> 
      <archive> 
       <manifest> 
       <mainClass>com.pictureu.mains.MainGui</mainClass> 
       </manifest> 
      </archive> 
      <descriptorRefs> 
       <descriptorRef>jar-with-dependencies</descriptorRef> 
      </descriptorRefs> 
      </configuration> 
     </plugin> 
相關問題