提问者:小点点

Spring Boot JAR文件不适用于ClassNotFoundException


我有一个正在工作的Spring Boot应用程序。

我做了

mvn clean package

jar文件是我的目标文件夹。

然后我尝试执行以下命令:

java -jar .\target\my-application-0.0.1-SNAPSHOT.jar

我得到以下错误:

Exception in thread "main" java.lang.ClassNotFoundException: C:\Users\test\example-application\example-app/src/main/test/ExampleApplication
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:467)
        at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:46)
        at org.springframework.boot.loader.Launcher.launch(Launcher.java:108)
        at org.springframework.boot.loader.Launcher.launch(Launcher.java:58)
        at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:65)

研究stackoverflow只是推荐一个我已经包含的问题…建议包含这个插件,以便将maven jar包含在项目中…. spring-boot-maven-plugin

        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>

它不起作用的原因还有什么?


共2个答案

匿名用户

异常中的类名是文件名而不是类名。这让我怀疑您错误地指定了主类。您是否在spring-boot-maven-plugin中指定了类名

<configuration>
  <mainClass>foo.bar.ExampleApplication</mainClass>
</configuration>

还是作为清单中的主类?请注意,您应该对包使用点表示法…

匿名用户

几周前我遇到了类似的问题。Spring会在/src/main文件夹中查找大多数类的源代码。看起来您缺少该文件夹中的文件。就我而言,我只将其放在/src而不是/src/main