a33291
V2EX  ›  问与答

貌似没有简单的方法知道 maven 上的包兼容哪些 jdk?

  •  
  •   a33291 · Dec 20, 2024 · 1807 views
    This topic created in 682 days ago, the information mentioned may be changed or developed.
    在官网页面上没找到包列出的 jdk 依赖关系之类的信息
    网上说的是查看 MANIFEST.MF 文件,这极其繁琐且不可靠(要先下载 jar 然后再看里边内容)


    是否有简单直接的方式知道一个 package 的 jdk 兼容性?
    4 replies  •  2024-12-21 15:09:41 +08:00
    dcsuibian
    dcsuibian
    Dec 20, 2024❤️1
    1
    作为一个 Javaer ,其实没怎么想过这个问题。Java 在向后兼容方面做的比较好。某些脚本语言在这点上就做得相当垃圾。( Node.js 和 Python )

    Java versions are expected to be binary backwards-compatible. For example, JDK 8 can run code compiled by JDK 7 or JDK 6. It is common to see applications leverage this backwards compatibility by using components built by different Java version.
    所以如果我是个类库的作者,我会在编写 Java 库时尽量用低的版本。比如做的挺好的 Netty 4 就支持 Java 6 。

    而作为使用者,只要你使用 8 以上,你就可以尽量用新的类库版本。

    而且吧,Java 需要编译,如果接口变了或没了,那你直接编译就通不过。所以你很快就知道能不能用。如果不能用,那降个大版本基本也就能用了。


    不过实际并没有那么完美,比如 nashron 引擎就被移除了。javax 的现在要注意下改成 jakarta ,万恶的 Oracle 。
    a33291
    a33291
    OP
    Dec 21, 2024
    2
    @dcsuibian 有个项目锁死在 jdk8,然后添加一个依赖的话根本不知道用哪个版本,用高版本会失败,如果能提前知道兼容性就没这么繁琐了
    mxalbert1996
    mxalbert1996
    Dec 21, 2024 via Android❤️1
    3
    a33291
    a33291
    OP
    Dec 21, 2024
    4
    @mxalbert1996 感谢,貌似比较吃资源

    希望 maven 和 nuget 一样可以直接列出框架依赖就好了,毕竟只需要上传时处理一次就行🤣
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2990 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 12:05 · PVG 20:05 · LAX 04:05 · JFK 07:05
    ♥ Do have faith in what you're doing.