关于后端:部署Spring-Boot项目

24次阅读

共计 2827 个字符,预计需要花费 8 分钟才能阅读完成。

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

之前在新建 Spring Boot 我的项目应用 mvn install 的形式,曾经构建出 jar 包。

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

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

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

可发现之前是应用间接下载 & 编译的形式装置

决定这次仍然不应用 apt-get 的形式。

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

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

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

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

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

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

参考腾讯云服务器平安组设置凋谢 8080 端口:

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


<font color=”orange”> 对于 Java 的版本 </font>

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

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

故而 DK1.8/JDK8 是新旧命令形式导致的同一个货色的不同称呼。

Java8、JDK8、JDK1.8 都是同一个货色

以后最新的版本是 Java 17

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

本文由 mdnice 多平台公布

正文完
 0