java 1.6 的 ie 项目 终于升级 1.8 chrome 了。
搞了半天升级 spring hibernate 等相关配置,终于把项目跑起来了。
可是回到家,用 mac 电脑却跑不起来。
报
java.lang.NoSuchMethodError: org.hibernate.engine.spi.SessionFactoryImplementor.getProperties()Ljava/util/Map;
又远程回公司的 win 电脑 跑起来没问题。
就邪门了 和底层 jdk 有关么?
mac 是 m1 芯片 用的 zulu openjdk8
搜这个报错 说是升级 hibernate 就好了
可是我就是升级到 5.6.9 了
且 win 下是好的 mac 下就跑不起来 。
愁唉。
1
xuhaoyangx Dec 9, 2022
jdk 1.8 直接用 Intel 的,转译使用
|
2
helee9199 OP |
3
jorneyr Dec 9, 2022
有些类在 Windows 上 JDK8 有,在 Mac zulu JDK8 没有,我也遇到过,例如 javafx.util.Pair 这个类没有。
|
5
Hurriance Dec 9, 2022 via iPhone
用 Oracle 的 jdk1.8 也不行吗
|
6
night98 Dec 10, 2022
用 oracle 的 jdk17 ????? jdk9 干掉了一堆类,jdk17 就更别说了
|
7
kran Dec 10, 2022 via Android
尝试在无错环境看一下入参的实际类型
|
8
zeni123 Dec 10, 2022 via iPhone
NoSuchMethodError 看看这个 SessionFactoryImplementor 类有没有 getProperties()Ljava/util/Map;这个方法
|
9
cnzjl Dec 10, 2022
你 debug 图中的类和异常信息的类不一致呀
|
10
sinibazhang Dec 10, 2022
@jorneyr zulu jdk 应该是有 javafx 版本的
|
11
JLX Dec 10, 2022 via Android
debug 图与描述不太相关啊,不是应该看 SessionFactoryImplementor 有没有 getProperties 方法吗,项目中搜索这个类及对应方法再看看有没有
|
12
cvooc Dec 10, 2022
恭喜升级, 要不考虑更进一步升个 JDK11?
|
13
hqs0417 Dec 10, 2022
这种问题一般是 jar 包冲突,也就是一个类在存在多个 jar 。
类加载器在 windows ,linux ,mac 由于文件系统不同,加载顺序不同,可能在 linux 下可以工作,但是在 mac 下无法正常工作。 排查思路,找 org.hibernate.engine.spi.SessionFactoryImplementor 是否存在多个 jar 中,应该一个有该方法一个没有。排掉哪个 |
14
Macolor21 Dec 12, 2022 via iPhone
NoXxxFound 一般是依赖冲突,window 没更新可能是依赖没更新,mvn clean 再 package 试下。
或者代理对象被序列化,反序列化之后出现的问题 |