API的加载,正常来说只会出现在低版本JDK无法加载高版本API,极少有高版本无法兼容低版本的,你图上报错的API,在JDK11上都依然存在使用。
同样的错误我也曾经出现过,换一个不同版本的依赖就解决了,具体发生此类情况的原因还需要检查源码语法和依赖包才能弄清楚。
理论上,高版本JDK是可以向下兼容旧版本JDK的,除非版本差异实在太大,比如从1.8跨到17或以上的大版本更新,建议查找报错相关的语法内容来找到原因。
至于JAVA项目脱离JVM,除非将jre打包进项目,或者是那些不需要JVM环境的,比如一些比较简单的加解密小工具。当然,或许有高手能够摆脱对虚拟机的依赖,但是我并没有这样的水平。