当前位置: 首页 > 知识库问答 >
问题:

当我从Spring Boot Jar运行而不是通过Eclipse运行时,ClassNotFoundException

相威
2023-03-14

我有一个带有Spring Boot的多级Maven项目。

ParentProject
|_ Project1
   |_pom.xml
|_ LibraryProject
   |_pom.xml
|_ Project2
   |_pom.xml

对于父项目,父项目定义如下:

<parent>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-parent</artifactId>
   <version>1.5.9.RELEASE</version>
   <relativePath></relativePath>
</parent>

对于项目1、库项目和项目2:

<parent>
   <groupId>ParentProject</groupId>
   <artifactId>ParentProject</artifactId>
   <version>0.0.1-SNAPSHOT</version>
   <relativePath>..</relativePath>
</parent>

项目 1 和项目 2 依赖于库项目中的类。当我从 Eclipse 执行时,项目 1 和项目 2 都会在库项目中找到它们的所有类和所有类。当我创建项目 1 时.jar

mvn clean install package

然后运行它,我在LibraryProject中的类上获得ClassNotFoundExceptions。LibraryProject是Project1的依赖项,在Project1之前生成。

父项目使用Spring启动父项作为其父项。它按以下顺序构建

1) LibraryProject
2) Project1
3) Project2

我引入了maven编译器插件、maven-jar插件和maven远程资源插件。

我只是没有想法。它在日食中编译,专家可以构建它。但是运行它会产生异常。

提前谢谢大家了。

共有1个答案

司寇安宜
2023-03-14

这是由类加载器引起的,使用java -jar运行的Spring靴有自己的 ClassLoader.It 将从BOOT-INF /类和BOOT-INF /lib加载类,但Eclipse会将所有依赖项添加到类路径中。所以Eclipse可以找到类,你可以检查你pom.xml。

 类似资料:
  • 如果我从终端uvicorn main:app运行--重新加载一切工作。 当把它放在my_script.sh文件中时 然后什么都没发生。为什么? 我发现了这个:Uvicorn/FastAPI可执行文件,但似乎没有答案。

  • 我制作了一个小的Java应用程序,我想把它发送给我的朋友,但是他们无法通过双击来打开文件。他们没有技术知识或经验,因此我无法真正让他们使用任何其他方法来运行应用程序。 当我尝试双击应用程序时,它似乎运行得很好,但是当我尝试运行CMD(使用)时,我遇到了以下错误: 我朋友端的错误也与Java运行时版本有关,所以这可能有某种联系?作为一个初学者,我已经花了相当多的时间在这上面,但还没有能够想出一个解决

  • 我试图在Tomcat上通过eclipse运行一个项目文件。现在服务器启动了,但是当我试图访问服务器时(使用localhost:8080),我得到了一个404错误。查看Eclipse中的服务器控制台,我看到了一些奇怪的消息,希望你们中的一个能够理解它们。信息如下。谢了! 信息:在java.library.path:C:\program files\java\jre6\bin;C:\windows\s

  • 我希望在使用运行测试时,控制台尽可能安静,除非出现问题。再说一次,当我在Eclipse中编写测试时(换句话说,当我在Eclipse中运行单个junit测试时),它们可以非常详细。 因此,当我使用surefire运行所有测试时,我需要一种方法来拥有不同的log4j/logback设置,而不是在Eclipse中一个接一个地运行它们。有没有办法做到这一点?

  • 我创建了这个数组位置。昨天的爪哇 今天我创建了一个新项目并添加了这个MyDisplay。爪哇 但当我运行我的显示器时。java eclipse仍在运行旧的ArrayLocation。java和32.9。我以为它会打开一个空白的小程序。 请帮帮我我是个新手 我应该如何告诉eclipse运行MyDisplay。java而不是ArrayLocation。JAVA

  • 当我在给定文件夹中运行Eclipse.exe时,它不会启动。Eclipse启动屏幕将出现一瞬间,然后关闭。没有错误。 我几乎什么都试过了。更新JDK和JRE:我安装了JRE 7和JDK 1.7.040。它们都是64位的,都在(x86)文件夹中。我试过重新安装。重新下载Eclipse。每次都是一样的结果。我已经将虚拟机添加到配置中,但仍然没有添加任何内容。 我使用Windows 7和标准Eclips