<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-18OpenJDK 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的配置:
#javaexport JAVA_HOME=/usr/local/java/jdk1.8.0_211export JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/libexport 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的门路:
#javaexport JAVA_HOME=/usr/local/java/jdk-17.0.2export JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/libexport 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多平台公布