部署Spring Boot项目

简介: 部署Spring Boot项目

上传jar包


之前在新建Spring Boot项目使用mvn install的方式,已经构建出jar包。

通过scp或rz/sz,将该jar包上传到服务器

微信截图_20230925175250.png

执行java -jar hello-0.0.1-SNAPSHOT.jar,发生如下报错:

微信截图_20230925175307.png

Exception in thread "main" java.lang.UnsupportedClassVersionError: tech/dashen/hello/HelloApplication has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
  at java.lang.ClassLoader.defineClass1(Native Method)
  at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
  at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
  at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
  at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
  at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
  at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
  at java.security.AccessController.doPrivileged(Native Method)
  at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
  at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:151)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
  at java.lang.Class.forName0(Native Method)
  at java.lang.Class.forName(Class.java:348)
  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:88)

这是由于编译环境运行环境不一致导致:

本机执行 java -version

openjdk version "17.0.2" 2022-01-18
OpenJDK Runtime Environment (build 17.0.2+8-86)
OpenJDK 64-Bit Server VM (build 17.0.2+8-86, mixed mode, sharing)

服务器上执行 java -version

java version "1.8.0_211"
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)

服务器 安装/更新Java版本


通过cat .bashrc查看之前Java的配置:

#java
export JAVA_HOME=/usr/local/java/jdk1.8.0_211
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

切换到/usr/local/java下:

微信截图_20230925175556.png

可发现之前是使用直接下载&编译的方式安装

决定这次依然不使用apt-get的方式。

此处 找到对应平台的Java 17,复制下载地址

微信截图_20230925175609.png

使用wget + 下载地址下载到当前目录,

微信截图_20230925175650.png

sudo tar -zxvf jdk-17_linux-x64_bin.tar.gz,解压出jdk-17.0.2文件夹


修改.bashrc中Java的路径:

#java
export JAVA_HOME=/usr/local/java/jdk-17.0.2
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

微信截图_20230925175727.png

再去之前的目录下执行java -jar hello-0.0.1-SNAPSHOT.jar命令

微信截图_20230925175739.png

微信截图_20230925175746.png

可参考nohup java -jar hello-0.0.1-SNAPSHOT.jar >temp.txt &,让进程在后台运行。并会把日志文件输入到指定的temp.txt中


服务器 放开8080端口


参考腾讯云服务器安全组设置开放8080端口

微信截图_20230925175847.png

再请求服务器公网ip:8080/cui,如预期

微信截图_20230925175901.png

关于Java的版本


依据 一文搞懂JDK8与Java1.8的区别,

从JDK1.5/JDK5开始,命名方式由之前的1.x,改成了x

故而DK1.8/JDK8是新旧命令方式导致的同一个东西的不同称谓。

即  Java8、JDK8、JDK1.8都是同一个东西

微信截图_20230925175947.png

当前最新的版本是 Java 17

Java版本历史

微信截图_20230925180001.png

目录
相关文章
|
26天前
|
Java 应用服务中间件 Maven
如何将 Spring Boot 应用程序部署为 WAR?
如何将 Spring Boot 应用程序部署为 WAR?
86 1
|
21天前
|
消息中间件 监控 Java
如何将Spring Boot + RabbitMQ应用程序部署到Pivotal Cloud Foundry (PCF)
如何将Spring Boot + RabbitMQ应用程序部署到Pivotal Cloud Foundry (PCF)
31 6
|
21天前
|
Java 关系型数据库 MySQL
如何将Spring Boot + MySQL应用程序部署到Pivotal Cloud Foundry (PCF)
如何将Spring Boot + MySQL应用程序部署到Pivotal Cloud Foundry (PCF)
39 5
|
21天前
|
缓存 监控 Java
如何将Spring Boot应用程序部署到Pivotal Cloud Foundry (PCF)
如何将Spring Boot应用程序部署到Pivotal Cloud Foundry (PCF)
31 5
|
20天前
|
Java 应用服务中间件 Docker
将基于 Spring 的 WAR 应用程序部署到 Docker:详尽指南
将基于 Spring 的 WAR 应用程序部署到 Docker:详尽指南
24 2
|
26天前
|
Java Linux Docker
什么是 Docker?如何将 Spring Boot 应用程序部署到 Docker?
什么是 Docker?如何将 Spring Boot 应用程序部署到 Docker?
41 3
|
1月前
|
存储 运维 安全
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
42 2
|
1月前
|
JavaScript 前端开发 Java
SpringBoot项目的html页面使用axios进行get post请求
SpringBoot项目的html页面使用axios进行get post请求
37 0
|
前端开发 JavaScript 关系型数据库
前后端分离 -- SpringBoot + Vue实战项目 部署至阿里云服务器
前后端分离 -- SpringBoot + Vue实战项目 部署至阿里云服务器
3293 2
前后端分离 -- SpringBoot + Vue实战项目 部署至阿里云服务器
|
6月前
|
Java Maven
springboot项目打jar包后,如何部署到服务器
springboot项目打jar包后,如何部署到服务器
448 1