为什么一个jar只能由特定的jdk运行?

同一台机器,用默认jdk命令执行这个jar执行不了

img

使用一个从生产环境下拉取下来的jdk就可以运行(这个jdk从哪里来的已经没人知道了)

img

这个jdk的目录结构

img

img

jar不是只能 由 特定的jdk来运行;;

而是

用什么版本的jdk打包的jar,只能用改版本的jdk来运行这个jar

这个是核心,

这个是核心,

这个估计能解决你的问题。

至于为什么,请先了解jvm原理和各个版本的jdk实现就能明白。

程序换个环境运行不了,无非就是以下几种情况:
1.缺少类库文件
你看看生产环境里是不是比开发环境多了什么库文件
2.缺少配置文件
比如数据库的IP之类的,如果默认是个空白,那运行能不报错吗

执行不了的报错信息是啥?
1、版本不同,不支持
2、CLASSPATH 设置不对

检查下META_INF配置文件的存放路径是否正确