Java Maven生成错误:无法找到或加载主类
在jar中基于maven构建项目后,我遇到了问题 我制作包并创建.jar文件:Java Maven生成错误:无法找到或加载主类,java,maven,jar,Java,Maven,Jar,在jar中基于maven构建项目后,我遇到了问题 我制作包并创建.jar文件: mvn package 在我运行jar文件之后 java -jar artifactId.jar 和获取错误: Error: Could not find or load main class com.emercit.app.App 如果在目标目录中运行类,则会出现类似错误: cd target/classes/com/emercit/app java App Error: Could not find or
mvn package
在我运行jar文件之后
java -jar artifactId.jar
和获取错误:
Error: Could not find or load main class com.emercit.app.App
如果在目标目录中运行类,则会出现类似错误:
cd target/classes/com/emercit/app
java App
Error: Could not find or load main class App
应用程序类中的我的代码:
package com.emercit.app;
public class App extends Application {
/**
Program code
**/
}
public static void main (String[] args) {
//Init form
Thread myThready = new Thread(() -> {
launch(args);
});
myThready.start();
}
}
pom.xml中的我的生成属性:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>false</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>com.emercit.app.App</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy</id>
<phase>install</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>
${project.build.directory}/lib
</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
org.apache.maven.plugins
maven编译器插件
1.8
1.8
org.apache.maven.plugins
maven jar插件
假的
解放党/
com.emercit.app.app
org.apache.maven.plugins
maven依赖插件
复制
安装
复制依赖项
${project.build.directory}/lib
使用此插件构建jar并指定主类,这将在生成的jar中添加正确的META-INF
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<manifestEntries>
<Main-Class>com.barclaycard.blackboxtester.Application</Main-Class>
<Build-Number>123</Build-Number>
</manifestEntries>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
org.apache.maven.plugins
maven阴影插件
3.0.0
包裹
阴凉处
com.barclaycard.blackboxtester.Application
123
您的设置与我的设置类似,只是您需要将POM文件中的此参数更改为“true”值
创建任何mavenized项目时的文件结构应该src/main/java,包应该包含在类文件中
另一方面,它会抛出错误,无法找到或加载主类您可以共享github链接吗?您的main()不是在类之外吗?应用程序包含main(),并且在IDEA project it Work中,您不应该从控制台在
目标/classes/com/emercit/App
中运行应用程序
,您可以从target/classes
运行com.emercit.app.app
。
<addClasspath>true</addClasspath>
Class-Path: calendar-2.2.3.jar algebrain-2.2.3.jar commons-codec-1.9.j
ar argument-4.3.8.jar slf4j-api-1.7.13.jar slf4j-log4j12-1.7.13.jar l
og4j-1.2.17.jar