我尝试使用java -jar jarfile.jar运行编译的jar文件,但返回以下错误。
Exception in thread "main" java.lang.ClassNotFoundException: MainApplication
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:93)
at java.lang.ClassLoader.loadClass(Unknown Source)
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:46)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:50)
at org.springframework.boot.loader.PropertiesLauncher.main(PropertiesLauncher.java:593)
为什么会这样。当我在弹簧工具套装中运行时,它可以完美运行。仅当我尝试使用CMD Windows运行我的应用程序时
答案 0 :(得分:1)
已解决此答案正确。 这是在项目的api模块中配置pom.xml时出现的错误。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.1.0.RELEASE</version>
<configuration>
<mainClass>com.mobios.MainApplication</mainClass>
<layout>ZIP</layout>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
以下行创建错误
<mainClass>MainApplication</mainClass>
这定义了应用程序的主类。但是我只提到了类名。它还必须包含组ID。我认为很多人都像我一样犯这种简单的错误。作为弹簧靴初学者,我认为这很普遍。上一行必须如下所示。
<mainClass>com.mobios.MainApplication</mainClass>
现在,在构建罐子并运行它时可以正常工作。但是没有组ID,我可以在eclipse或您使用的任何其他开发工具中运行项目。
答案 1 :(得分:0)
您添加了这种类型的spring boot应用程序类吗?
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class FApplication {
public static void main(String[] args) {
SpringApplication.run(FApplication.class, args);
}
}
可能是您的应用程序在jar文件中找不到Java清单。
答案 2 :(得分:0)
打开命令提示符,然后转到pom.xml所在的位置
运行mvn clean install
收到消息构建成功
cd target
java -jar <file-name>.jar
如果在运行时仍收到错误消息,则说明某些spring配置错误。
从https://start.spring.io/
创建新的Spring Boot应用程序