当前位置: 首页 > news >正文

好多网站没排名了经济型网站建设

好多网站没排名了,经济型网站建设,中国建设招标网 官方网站下载,做王境泽表情的网站背景Java 9 版本中增强了Jar 包多版本字节码文件格式支持#xff0c;也就是说在同一个 Jar 包中我们可以包含多个 Java 版本的 class 文件#xff0c;这样就能做到 Jar 包升级到新的 Java 版本(新特性 API 使用)时不用强迫使用方为了使用新 Jar 包而升级自己的业务模块 Java … 背景Java 9 版本中增强了Jar 包多版本字节码文件格式支持也就是说在同一个 Jar 包中我们可以包含多个 Java 版本的 class 文件这样就能做到 Jar 包升级到新的 Java 版本(新特性 API 使用)时不用强迫使用方为了使用新 Jar 包而升级自己的业务模块 Java 版本也不用针对不同最低支持 Java 版本提供不同的 Jar真正的做到了一个 Jar 包兼容所有的目的。这样的 Jar 称为 MRJAR。MRJAR 中的代码包含在不同版本 JDK 下编译的 class 文件。譬如使用 JDK9 编译的类可以调用 JDK9 提供的 API而使用 JDK8 编译的类可以调用 JDK8 提供的 API只要保证他们在 MRJAR 中的包名、类名、类对外调用都一致即可。MRJAR 规则一般典型情况下的 JAR 包内部包含 class 文件和一个属性META-INF/MANIFEST.MF文件如下- jar-root  - A.class  - B.class  - C.class- META-INF  - MANIFEST.MFMRJAR 扩展自 JAR 的目录结构扩展了META-INF目录以便存储特定 JDK 版本的 class 文件META-INF目录包含一个版本子目录其中可能包含许多子目录每个目录的命名需要与 JDK 主要版本相同。譬如对特定于 JDK9 的 class 可以放在META-INF/versions/9目录下对特定于 JDK10 的 class可以放在META-INF/versions/10目录下等。所以一般典型情况下的 MRJAR 包内部大致如下- jar-root  - A.class  - B.class  - C.class- META-INF  - MANIFEST.MF  - versions    - 9      - A.class      - D.class    - 10      - A.class      - B.class上面的例子中在不同 JDK 环境下运行表现如下如果这个 MRJAR 在不支持 MRJAR 的 JDK 环境(譬如 JDK8)下使用则会被自动兼容当做普通 JAR 使用即META-INF/versions/目录下都被忽略直接使用了 root 下的 class所以无法访问 D。如果这个 MRJAR 在 JDK9 中使用则只有 A、B、C、D 这几个 class 可以使用且这里的 A、D 用的是META-INF/versions/9/下面的 class其他用的 root 目录下的 class。对于 JDK10 来说原理类同上面 JDK9这里不多解释。只是说当我们在 JDK10 环境使用 C 类时搜索的顺序是先搜索META-INF/versions/10/下是否存在 C如果不存在则搜索META-INF/versions/9/下是否存在 C如果不存在则搜索根 root 目录下是否存在这个查找顺序一定要明白。对 JDK11 来说因为不存在META-INF/versions/11/所以依次在低于自己的版本中搜索在这里也就等同于在 JDK10 下被命中的类。制作 MRJARJDK9 对生成 JAR 包的各种命令和工具都升级为支持 MRJAR所以制作 MRJAR 最好直接使用 JDK9 开始的环境其 jar 命令新增了一个参数为--release语法如下//N代表一个JDK主版本如JDK9中的9且N值必须大于等于9//所有在--release N之后的文件都会被添加到MRJAR的META-INF/versions/N目录下jar  --release N 假设现在我们准备好了一套 JDK8 的类和一套 JDK12 的类和编译成 class 的产物如下//JDK8的源文件编译产物目录假设为 jdk8/build/classes/package cn.yan.mrjar;public class JarUtil {    public String func() {        //JDK8 API实现功能    }}//JDK12的源文件编译产物目录假设为 jdk12/build/classes/package cn.yan.mrjar;public class JarUtil {    public String func() {        //JDK12 API实现功能    }}接着我们对上面不同版本生成一个 MRJAR如下命令jar --create --verbose --file test-out.jar-C jdk8/build/classes .--release 12 -C jdk12/build/classes .这样就生成了一个 MRJARJDK12 的 JarUtil 类会被放进META-INF/versions/12/目录下JDK8 的会被放进 root 根目录下。此时的 MRJAR 解压结构如下- jar-root  - cn    - yan      - mrjar        - JarUtil.class- META-INF  - MANIFEST.MF  - versions    - 9      - cn        - yan          - mrjar            - JarUtil.class这样就能将上面制作好的的 MRJAR 在不同 JDK 环境下使用了你说棒不棒感觉有用来个在看的同时发给你的好基友呀。▼往期精彩回顾▼你知道 SimpleDateFormat 的性能问题怎么解决吗推荐一波代码量、行数、提交量、作者等全维度统计神器点击左下角阅读原文查看历史经典技术问题汇总看完顺手三连呀
http://www.sadfv.cn/news/387476/

相关文章:

  • 超市网站建设策划书桂林人论坛网
  • 网站添加新关键词做超市促销海报哪个网站好
  • html5网站建设 教程视频公司注册网站及流程
  • 杭州网站商场开发静态网页设计素材
  • 东台网站制作建设环保网站查询系统
  • 企业网站一般用什么框架做台州市建设工程质量检测中心网站
  • 做网店去哪个网站货源好温州网站建设公司公司哪家好
  • 呼市浩特网站建设wordpress口腔
  • 微网站是什么wordpress文件简易版
  • 学做甜点的网站广西住房及城乡建设厅网站
  • 做网站虚拟主机多少钱网站内容的特点
  • dedecms5.7环保科技公司网站模板佛山网页设计制作
  • 零基础制作公司网站教程做网站手把手
  • 好看网电影网站模板微网站 布局
  • 怎样自学网站开发株洲网站做的好的公司
  • 齐齐哈尔市建设网站设计高端网页
  • 如何自建外贸网站ftp服务器搭建设置网站信息
  • 网站建设合同缴纳印花税吗爱网站免费一站二站
  • 滨州外贸网站建设上海网站优化公司排名
  • 利辛做网站WordPress开发微信支付
  • 红酒集团网站建设邯郸网站建设渠道
  • 锦绣江南网站建设中小企业服务网
  • 课程设计代做网站php免费网站自己做
  • 电商网站开发 上海vps装wordpress
  • wordpress 网站很卡做床上用品网站
  • 网站建设好了怎么在百度可以搜到大人和小孩做系列网站
  • 网站显示内容不显示门户网站如何制作
  • 网页制作与网站建设实战大全光盘原创文字的网站
  • 有没有做网站的wordpress中文版 docker
  • 做网站素材wordpress 米表