上傳jar包
之前在新建Spring Boot項(xiàng)目[1]使用mvn install
的方式,已經(jīng)構(gòu)建出jar包。
通過scp或rz/sz,將該jar包上傳到服務(wù)器

執(zhí)行java -jar hello-0.0.1-SNAPSHOT.jar
,發(fā)生如下報(bào)錯(cuò):

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)
這是由于編譯環(huán)境與運(yùn)行環(huán)境不一致導(dǎo)致:
本機(jī)執(zhí)行 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)
服務(wù)器上執(zhí)行 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)
服務(wù)器 安裝/更新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
下:

可發(fā)現(xiàn)之前是使用直接下載&編譯的方式安裝
決定這次依然不使用apt-get的方式。
在 此處[2] 找到對(duì)應(yīng)平臺(tái)的Java 17,復(fù)制下載地址

使用wget + 下載地址
下載到當(dāng)前目錄,

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

再去之前的目錄下執(zhí)行java -jar hello-0.0.1-SNAPSHOT.jar
命令


可參考此[3],nohup java -jar hello-0.0.1-SNAPSHOT.jar >temp.txt &
,讓進(jìn)程在后臺(tái)運(yùn)行。并會(huì)把日志文件輸入到指定的temp.txt中
服務(wù)器 放開8080端口
參考騰訊云服務(wù)器安全組設(shè)置開放8080端口[4]:

再請(qǐng)求服務(wù)器公網(wǎng)ip:8080/cui,如預(yù)期

關(guān)于Java的版本
依據(jù) 一文搞懂JDK8與Java1.8的區(qū)別[5],
從JDK1.5/JDK5開始,命名方式由之前的1.x,改成了x
故而DK1.8/JDK8是新舊命令方式導(dǎo)致的同一個(gè)東西的不同稱謂。
即 Java8、JDK8、JDK1.8都是同一個(gè)東西

當(dāng)前最新的版本是 Java 17
Java版本歷史

參考資料
新建Spring Boot項(xiàng)目: https://dashen.tech/2022/02/01/%E6%96%B0%E5%BB%BASpring-Boot%E9%A1%B9%E7%9B%AE/
[2]此處: https://www.oracle.com/java/technologies/downloads/#jdk17-linux
[3]此: https://blog.csdn.net/qq_22638399/article/details/81506448
[4]騰訊云服務(wù)器安全組設(shè)置開放8080端口: https://www.txyfwq.com/anquanzu/8080duankou.html
[5]一文搞懂JDK8與Java1.8的區(qū)別: https://blog.csdn.net/qq_44895681/article/details/105365655文章來源:http://www.zghlxwxcb.cn/news/detail-683330.html
本文由 mdnice 多平臺(tái)發(fā)布文章來源地址http://www.zghlxwxcb.cn/news/detail-683330.html
到了這里,關(guān)于部署Spring Boot項(xiàng)目的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!