igr*_*igr 5 java unsafe java-8 java-9 module-info
我sun.misc.Unsafe在我的Java8代码库中使用.这不适用于Java9.
我想修复Java9,但使用与Java8相同的代码库.如果我放module-info.java,它将无法工作,因为我的代码库是Java8.
该怎么办?
Andreas 评论指出了正确的方向,您可以使用Multi-Release JAR Files。
您可以创建一个打包,使得具有两个 Java JDK 通用代码的类位于根 JAR 中,而您需要覆盖其实现的类则位于根JAR以及META -INF/versions/9中。正如 JEP 所指出的:-
在不支持MRJAR的JDK中,只有根目录中的类和资源才是可见的。
在支持 MRJAR 的 JDK 中,与任何更高版本的 Java 平台版本相对应的目录将被忽略;它会首先在与当前运行的主要 Java 平台发行版本相对应的 Java 平台特定目录中搜索类和资源,然后搜索较低版本的类和资源,最后搜索 JAR 根目录。
例如,在 Java 9 JDK 上,就好像有一个特定于 JAR 的类路径,首先包含版本 9 文件,然后包含 JAR 根;在 Java 8 JDK 上,此类路径将仅包含 JAR 根。
编辑:-这是在JetBrains 博客的帮助下使用 IntelliJ2017.3 创建的类似打包的示例项目。
| 归档时间: |
|
| 查看次数: |
403 次 |
| 最近记录: |