gpt4 book ai didi

java - (spring boot) jar 无法在其他计算机上执行

转载 作者:行者123 更新时间:2023-12-02 02:04:01 26 4
gpt4 key购买 nike

我有一个 Spring Boot 应用程序。我用maven打包,然后用java -jar xxx.jar执行。应用程序正在运行。但是,如果我将 jar 复制到另一台机器上(相同的 java 版本,相同的操作系统),我会收到依赖错误:

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name
'org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaConfiguration':...
...
Unsatisfied dependency expressed through constructor parameter 0
...
Bean instantiation via factory method failed
...
Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException:
Failed to instantiate [javax.sql.DataSource]:
Factory method 'dataSource' threw exception; nested exception is java.lang.NullPointerException

我添加了debug=true来显示执行期间的类路径,但两台机器上似乎都是一样的(maven执行和java执行之间的类路径顺序存在问题)

编辑:实际上问题不在于更改机器:如果我只是将 jar 移动到另一个文件夹中,我会得到相同的错误。如果我查看正确的运行过程,很明显,在类路径中存在对无法满足的项目目标文件夹的引用...

原始机器是iOS,我在其他iOS和Centos机器上尝试了该jar,结果相同。

我认为 jar 的部署非常方便,所以我不明白是否有更好的方法来部署应用程序或我没有考虑到的某些环境变量

编辑:我使用 Maven。我愿意

mvn package

或者 mvn 干净安装

我有答案中提到的依赖项

   <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

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

最佳答案

您需要创建一个Fat jar(一个包含所有依赖项的jar文件),您可以找到更详细的信息here ,但要在答案中添加一些代码:

基本上你要做的就是检查你的 pom 中是否有正确的依赖项

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.0.1.RELEASE</version>
</dependency>
</dependencies>

<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.0.1.RELEASE</version>
</plugin>
</plugins>

那你应该这样做

mvn clean install

然后运行它!

java -jar <artifact-name> 

编辑

如果重新打包,您会看到什么? mvn clean package spring-boot:repackage

关于java - (spring boot) jar 无法在其他计算机上执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51088076/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com