2013-08-19 73 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> 
相关问题