jdk11新特性——Remove the JavaEE and CORBA Moudles

Posted 小志的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jdk11新特性——Remove the JavaEE and CORBA Moudles相关的知识,希望对你有一定的参考价值。

目录

一、Remove the JavaEE and CORBA Moudles

1.1、概述

  • 在java11中移除了不太使用的JavaEE模块和CORBA技术CORBA来自于二十世纪九十年代,Oracle说,现在用CORBA开发现代Java应用程序已经没有意义了,维护CORBA的成本已经超过了保留它带来的好处。
  • 但是删除CORBA将使得那些依赖于JDK提供部分CORBA API的CORBA实现无法运行。目前还没有第三方CORBA版本,也不确定是否会有第三方愿意接手CORBA API的维护工作。

1.2、在java11中将java9标记废弃的Java EE及CORBA模块移除掉,具体如下

  • java.xml.ws
  • java.xml.bind
  • java.xml.ws.annotation
  • 只剩下java.xml,java.xml.crypto,jdk.xml.dom这几个模块;
  • java.corba
  • java.se.ee
  • java.activation
  • java.transaction被移除,但是java11新增一个java.transaction.xa模块

二、JEP : 335 : Deprecate the Nashorn javascript Engine

  • 废除Nashorn javascript引擎,在后续版本准备移除掉,有需要的可以考虑使用GraalVM。

三、JEP : 336 : Deprecate the Pack200 Tools and API

  • java5中带了一个压缩工具:Pack200,这个工具能对普通的jar文件进行高效压缩。其 实现原理是根据Java类特有的结构,合并常数 池,去掉无用信息等来实现对java类的高效压缩。由于是专门对Java类进行压缩的,所以对普通文件的压缩和普通压缩软件没有什么两样,但是对于Jar 文件却能轻易达到10-40%的压缩率。这在Java应用部署中很有用,尤其对于移动Java计算,能够大大减小代码下载量。

  • Java5中还提供了这一技术的API接口,你可以将其嵌入到你的程序中使用。使用的方法很简单,下面的短短几行代码即可以实现jar的压缩和解压:

    //压缩
    Packer packer=Pack200.newPacker(); 
    OutputStream output=new BufferedOutputStream(new  FileOutputStream(outfile)); 
    packer.pack(new JarFile(jarFile), output); 
    output.close(); 
    
    //解压
    Unpacker unpacker=Pack200.newUnpacker(); 
    output=new JarOutputStream(new FileOutputStream(jarFile)); 
    unpacker.unpack(pack200File, output); 
    output.close(); 
    
  • Pack200的压缩和解压缩速度是比较快的,而且压缩率也是很惊人的,在我是使用 的包4.46MB压缩后成了1.44MB(0.322%),而且随着包的越大压缩率会根据明显,据说如果jar包都是class类可以压缩到1/9的大 小。其实JavaWebStart还有很多功能,例如可以按不同的jar包进行lazy下载和 单独更新,设置可以根据jar中的类变动进行class粒度的下载。

  • 但是在java11中废除了pack200以及unpack200工具以及java.util.jar中的Pack200 API。因为Pack200主要是用来压缩jar包的工具,由于网络下载速度的提升以及java9引入模块化系统之后不再依赖Pack200,因此这个版本将其移除掉。

以上是关于jdk11新特性——Remove the JavaEE and CORBA Moudles的主要内容,如果未能解决你的问题,请参考以下文章

java新特性--07--JDK11

jdk11新特性——概述

jdk11新特性——概述

Java11新特性解读

整理Java 11新特性总结

JDK11的新特性你了解了吗?JDK12已经来了!13还远吗?