V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
movq
V2EX  ›  程序员

tomcat 需要的 JRE 版本和 war 包的 JRE 版本之间有什么关联?

  •  
  •   movq · 237 天前 · 1378 次点击
    这是一个创建于 237 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一个服务器 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 版本有没有兼容性要求呢?

    6 条回复    2024-03-24 12:50:12 +08:00
    derdct
        1
    derdct  
       237 天前
    没用什么内部骚 api 的话, 取 T/A 最大的和 S 对比就行了吧...
    S>=max(T,A)
    LeegoYih
        2
    LeegoYih  
       237 天前
    我玩过某个游戏就是 5 编译的,用 8 11 能跑,但是 17 不行,原因不明。
    dyv9
        3
    dyv9  
       237 天前 via Android
    @LeegoYih 因为 java 11 早 java 9 大改后唯一一个保持兼容的大版本,之后删除了不少东西。
    vhwwls
        4
    vhwwls  
       237 天前
    印象中没有这种强制性要求,Tomcat 的版本要求和 APP 自己的版本要求基本上可以说没什么关系,但是 APP 和 Server 上的 JDK 版本是有关系的,所以我支持一楼的 S>=max(T,A)。
    foolishcrab
        5
    foolishcrab  
       237 天前 via iPhone
    理论上一楼是对的,但是实际上推荐 sat 全部一致,发行版都一致最好。
    某些包会依赖 rt.jar 里的奇怪东西
    julyclyde
        6
    julyclyde  
       237 天前
    tomcat 和 war 其实是同一个进程啊
    所以必须是同一个 jre 运行他们

    至于怎么选版本,需要看二者的兼容范围

    建议不要再文物级 jdk 上继续开发
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2630 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 10:52 · PVG 18:52 · LAX 02:52 · JFK 05:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.