我刚开始学习如何使用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。程序将退出。”有任何想法吗? :(
感谢您的时间!
答案 0 :(得分:2)
在你的pom.xml中,你声明主类应该是org.felines.Speak
。但是这个类实际上是在默认包中,这意味着没有包定义。因此,要么在类实现中将包设置为org.felines
,要么仅将pom.xml中的mainClass
条目更改为Speak
。然后应该提供启动罐子的必要信息。