一个服务器 server ,它上面的 JRE 的版本是 S
假如 tomcat 需要的 JRE 版本是 T, 那么 S>=T 就能让 tomcat 运行
如果一个 war 包 web app 的 JRE 版本是 A ,那么能把这个 app 部署到此 server 的 tomcat 的要求,到底是 S>=A 还是 T>=A 还是 T==A?
我觉得既然是在 server 上面运行,就是用 server 的 JVM 运行 war 包的代码,所以必须 S>=A ,但是 tomcat (T)和 war 包 app (A)之间的 Java 版本有没有兼容性要求呢?
1
derdct 237 天前
没用什么内部骚 api 的话, 取 T/A 最大的和 S 对比就行了吧...
S>=max(T,A) |
2
LeegoYih 237 天前
我玩过某个游戏就是 5 编译的,用 8 11 能跑,但是 17 不行,原因不明。
|
4
vhwwls 237 天前
印象中没有这种强制性要求,Tomcat 的版本要求和 APP 自己的版本要求基本上可以说没什么关系,但是 APP 和 Server 上的 JDK 版本是有关系的,所以我支持一楼的 S>=max(T,A)。
|
5
foolishcrab 237 天前 via iPhone
理论上一楼是对的,但是实际上推荐 sat 全部一致,发行版都一致最好。
某些包会依赖 rt.jar 里的奇怪东西 |
6
julyclyde 237 天前
tomcat 和 war 其实是同一个进程啊
所以必须是同一个 jre 运行他们 至于怎么选版本,需要看二者的兼容范围 建议不要再文物级 jdk 上继续开发 |