上传jar包
之前在新建Spring Boot项目[1]使用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)
服务器 安装/更新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
下:
可发现之前是使用直接下载&编译的方式安装
决定这次依然不使用apt-get的方式。
在 此处[2] 找到对应平台的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
命令
可参考此[3],nohup java -jar hello-0.0.1-SNAPSHOT.jar >temp.txt &
,让进程在后台运行。并会把日志文件输入到指定的temp.txt中
服务器 放开8080端口
参考腾讯云服务器安全组设置开放8080端口[4]:
再请求服务器公网ip:8080/cui,如预期
关于Java的版本
依据 一文搞懂JDK8与Java1.8的区别[5],
从JDK1.5/JDK5开始,命名方式由之前的1.x,改成了x
故而DK1.8/JDK8是新旧命令方式导致的同一个东西的不同称谓。
即 Java8、JDK8、JDK1.8都是同一个东西
当前最新的版本是 Java 17
Java版本历史
参考资料
新建Spring Boot项目: 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]腾讯云服务器安全组设置开放8080端口: https://www.txyfwq.com/anquanzu/8080duankou.html
[5]一文搞懂JDK8与Java1.8的区别: https://blog.csdn.net/qq_44895681/article/details/105365655文章来源:https://www.toymoban.com/news/detail-683330.html
本文由 mdnice 多平台发布文章来源地址https://www.toymoban.com/news/detail-683330.html
到了这里,关于部署Spring Boot项目的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!