我正在尝试制作一个可执行的 JAVA 程序。该程序的源代码在源文件夹中有许多不同的包。当我在下面的 pom.xml 文件中设置 mainClass 属性并将其作为 maven 构建运行时,目标为“包”,它会创建 myapplication.jar。当我尝试使用打开它时
java -jar myapplication.jar
我收到消息:
'找不到主类:xxx.yyy.MainClass。程序将会退出。
以下是我的 pom.xml 文件的摘录:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>xxx.yyy.MainClass</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-a-jar</id>
<phase>compile</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
在 MainClass.java 中(在包 xxx.yyy 中)我有:
public static void main(String[] args) {
// My Code
}
如果我解压 JAR 文件并查看 META-INF 文件夹中的 MANIFEST.MF 文件,它包含以下行:
Main-Class: xxx.yyy.MainClass
Class-Path: aaa.jar bbb.jar ccc.jar
其中 aaa.jar、bbb.jar 和 ccc.jar 是 Maven 自动下载的 jar 文件,因为项目依赖于它们。这两行肯定都以换行结束。
此外,当我浏览到与解压缩的 JAR xxx/yyy/MainClass.class 相关的文件夹时,它就在那里!
谢谢你的帮助。