部署Spring Boot项目

数智征途
• 阅读 575

<font color="orange">上传jar包 </font>


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

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

部署Spring Boot项目


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

部署Spring Boot项目

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)


<font color="orange">服务器 安装/更新Java版本 </font>


通过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下:

部署Spring Boot项目

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

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

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

部署Spring Boot项目

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

部署Spring Boot项目

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

部署Spring Boot项目


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

部署Spring Boot项目


部署Spring Boot项目


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


<font color="orange">服务器 放开8080端口 </font>


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

部署Spring Boot项目


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

部署Spring Boot项目




<font color="orange">关于Java的版本 </font>


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

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

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

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

部署Spring Boot项目


当前最新的版本是 Java 17

[Java版本历史](https://zh.wikipedia.org/wiki/Java%E7%89%88%E6%9C%AC%E6%AD%B7...
)

部署Spring Boot项目


本文由mdnice多平台发布

点赞
收藏
评论区
推荐文章
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
4年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
菜鸟阿都 菜鸟阿都
4年前
springboot+vue项目linux环境部署
项目部署是一个程序员必备的技能,当项目开发过程中,需要将项目部署在开发服务器上,进行自测,或协助运维,测试进行环境的搭建配置,学会了项目部署,你就是团队中最亮的那个仔。项目简介后端:springboot项目【打包为jar包】前端:vue项目【通过cli3搭建】目标服务器:liunx操作系统使用工具xshell:通过命令操作服务器sftp:上传安装包到服务器部
Easter79 Easter79
4年前
springboot获取项目跟目录
springboot部署之后无法获取项目目录的问题:之前看到网上有提问在开发一个springboot的项目时,在项目部署的时候遇到一个问题:就是我将项目导出为jar包,然后用javajar运行时,项目中文件上传的功能无法正常运行,其中获取到存放文件的目录的绝对路径的值为空,文件无法上传。问题链接(https://www.oschina.
Stella981 Stella981
4年前
ASMSupport教程4.7 生成关系运算符
<p在java中,关系运算符是很常用的,分别是&gt;,,&lt;,&gt;,&lt;,!这六种,我们按照惯例看看我们需要生成的代码:</p<divid"scid:9D7513F9C04C4721824A2B34F0212519:dfec0f1ca2ec4ebabc9b91c161fbfa47"class"wlWri
Easter79 Easter79
4年前
SpringBoot打包部署简单说明
SpringBoot项目打包部署1\.jar包部署添加一个插件<!打包插件<build<plugins<plugin<groupId
Wesley13 Wesley13
4年前
4,MongoDB 之 $关键字 及 $修改器 $set $inc $push $pull $pop MongoDB
MongoDB中的关键字有很多,$lt$gt$lte$gte等等,这么多我们也不方便记,这里我们说说几个比较常见的一.查询中常见的等于大于小于大于等于小于等于等于:在MongoDB中什么字段等于什么值其实就是":"来搞定比如"name":"路飞学城"!(https://oscimg.oschin
Stella981 Stella981
4年前
SpringBoot打包部署简单说明
SpringBoot项目打包部署1\.jar包部署添加一个插件<!打包插件<build<plugins<plugin<groupId
Wesley13 Wesley13
4年前
MongoDB 范围查询
查询价格在2009000  $gt 大于   $lt  小于//查询价格2009000范围的数据db.prodgory.find({"price":{$gt:"200",$lt:"9000"}})查询给定范围数据  $in//给定范围查询db.product1.find({"categor
小万哥 小万哥
1年前
资源描述框架的用途及实际应用解析
RDF(资源描述框架)是一种用于机器理解网络资源的框架,使用XML编写。它通过URI标识资源,用属性描述资源,便于计算机应用程序处理信息。RDF在语义网上促进信息的确切含义和自动处理,使得网络信息可被整合。RDF语句由资源、属性和属性值组成。RDF文档包括&lt;rdf:RDF&gt;根元素和&lt;rdf:Description&gt;元素,后者用about属性标识资源。RDF还支持容器(如&lt;Bag&gt;、&lt;Seq&gt;和&lt;Alt&gt;)来描述集合。RDFS是RDF的扩展,提供描述类和属性的框架,而达布林核心是一组预定义属性,用于描述文档。
数智征途
数智征途
Lv1
峥嵘赤云西,日脚下平地。
文章
4
粉丝
0
获赞
0