无法使用m2eclipse制作可执行jar

时间:2011-05-19 14:42:40

标签: maven manifest m2eclipse

我刚开始学习如何使用m2eclipse。我要做的是制作一个非常简单的程序(Hello,World)并将其转换为可执行jar。 java代码本身是:

公共课说话{

/**
 * @param args
 */
public static void main(String[] args) {
    System.out.println("Meow!");
}

}

作为Java应用程序运行良好。然后我尝试使用Maven来构建它所执行的程序,但是当我尝试运行.jar时,它告诉我“无法从...加载Main-Class属性”。这是m2eclipse在我启动项目时生成的.pom:

<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>org.felines</groupId>
<artifactId>tabbies</artifactId>
<version>0.0</version>
<dependencies>
<dependency>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-jar-plugin</artifactId>
  <version>2.3.1</version>
  <type>maven-plugin</type>
  <scope>compile</scope>
</dependency>
</dependencies>
</project>

我尝试修改.pom,如下所示:

<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>org.felines</groupId>
<artifactId>tabbies</artifactId>
<version>0.0</version>
<build>
<plugins>
    <plugin>
        <artifactId>maven-jar-plugin</artifactId>
        <version>2.3.1</version>
        <configuration>
        <archive>
        <manifest>
             <mainClass>org.felines.Speak</mainClass>
             <packageName>org.felines</packageName>
        </manifest>
            <manifestEntries>
                <mode>development</mode>
                <url>${pom.url}</url>
        </manifestEntries>
        </archive>
        </configuration>
    </plugin>
</plugins>
</build>
</project>

现在它说“无法找到主类:org.felines.Speak。程序将退出。”有任何想法吗? :(

感谢您的时间!

1 个答案:

答案 0 :(得分:2)

在你的pom.xml中,你声明主类应该是org.felines.Speak。但是这个类实际上是在默认包中,这意味着没有包定义。因此,要么在类实现中将包设置为org.felines,要么仅将pom.xml中的mainClass条目更改为Speak。然后应该提供启动罐子的必要信息。