java.endorsed.dirs

 

java.ext.dirs 用于扩展jdk的系统库,那么 -Djava.endorsed.dirs 又有什么神奇的作用呢?

java提供了endorsed技术:
关于endorsed:可以的简单理解为-Djava.endorsed.dirs指定的目录面放置的jar文件,将有覆盖系统API的功能。可以牵强的理解为,将自己修改后的API打入到JVM指定的启动API中,取而代之。但是能够覆盖的类是有限制的,其中不包括java.lang包中的类。

这有什么用?

比如Java的原生api不能满足需求,假设我们需要修改 ArrayList 类,由于我们的代码都是基于ArrayList做的,那么就必需用到 Java endorsed 技术,将我们自己的ArrayList,注意包和类名和java自带的都是一样的,打包成一个jar包,放入到-Djava.endorsed.dirs指定的目录中,这样我们在使用java的ArrayList的时候就会调用的我们定制的代码中,是不是很酷!!

根据官方文档描述:如果不想添加-D参数,如果我们希望基于这个JDK下的都统一改变,那么我们可以将我们修改的jar放到:

$JAVA_HOME/jre/lib/endorsed

这样基于这个JDK的所有的ArrayList都改变了!!!

注意:

  1. 能够覆盖的类是有限制的,其中不包括java.lang包中的类,比如java.lang.String这种 就不行
  2. endorsed目录:.[jdk安装目录]./jre/lib/endorsed,不是jdk/lib/endorsed,目录中放的是Jar包,不是.java或.class文件,哪怕只重写了一个类也要打包成jar包
  3. 可以在dos模式查看修改后的效果(javac、java),在eclipse需要将运行选项中的JRE栏设置为jre(若设置为jdk将看不到效果)。
  4. 重写的类必须满足jdk中的规范,例如:自定义的ArrayList类也必须实现List等接口。
  5. System.out.println(System.getProperty("java.endorsed.dirs"));

java.endorsed.dirs的作用的更多相关文章

  1. java.endorsed.dirs

    java.ext.dirs 用于扩展jdk的系统库,那么 -Djava.endorsed.dirs 又有什么神奇的作用呢? java提供了endorsed技术: 关于endorsed:可以的简单理解为 ...

  2. java endorsed

    endorsed目录,充许你将一些特殊的类库放到其中以供项目使用. 官方说明:    Specifying the -Djava.endorsed.dirs=lib/endorsed system p ...

  3. mac eclipse中运行tomcat出现错误:-Djava.endorsed.dirs=D:\Tomcat 9.0\endorsed is not supported

    -Djava.endorsed.dirs=D:\Tomcat 9.0\endorsed is not supported. Endorsed standards and standalone APIs ...

  4. JAVA中protected的作用

    JAVA中protected的作用   1.public:public表明该数据成员.成员函数是对所有用户开放的,所有用户都可以直接进行调用 2.private:private表示私有,私有的意思就是 ...

  5. JAVA 注解的几大作用及使用方法详解

    JAVA 注解的几大作用及使用方法详解 (2013-01-22 15:13:04) 转载▼ 标签: java 注解 杂谈 分类: Java java 注解,从名字上看是注释,解释.但功能却不仅仅是注释 ...

  6. Java中hashCode的作用

    转  http://blog.csdn.net/fenglibing/article/details/8905007 Java中hashCode的作用 2013-05-09 13:54 64351人阅 ...

  7. paip.Java Annotation注解的作用and 使用

    paip.Java Annotation注解的作用and 使用 作者Attilax 艾龙,  EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog. ...

  8. 深刻理解Java中final的作用(一):从final的作用剖析String被设计成不可变类的深层原因

    声明:本博客为原创博客,未经同意,不得转载!小伙伴们假设是在别的地方看到的话,建议还是来csdn上看吧(原文链接为http://blog.csdn.net/bettarwang/article/det ...

  9. Java中Volatile的作用

    Java中Volatile的作用 看了几篇博客,发现没搞懂.可是简单来说,就是在我们的多线程开发中.我们用Volatile关键字来限定某个变量或者属性时,线程在每次使用变量的时候.都会读取变量改动后的 ...

随机推荐

  1. 八大排序的python实现

    以下是八大排序的python实现,供以后参考,日后扩展 一.插入排序 #-*- coding:utf-8 -*- ''' 描述 插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一 ...

  2. java设计模式之迭代器模式

    一.迭代器模式简介 迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示. 迭代器模式让我们能游走于聚合内的每一个元素,而又不暴露内部的表示.把游走的任务放在迭代器上,而不是 ...

  3. VC调用Delphi DLL

    别的没什么,是一定可以调用成功的.但是意外的是,ShowMessage函数在DLL里也可以轻易被调用.此外,Delphi里的var 相当于VC里的引用,需要在函数原型里正确标识,否则传递普通变量甚至常 ...

  4. 我的Java开发学习之旅------>计算从1到N中1的出现次数的效率优化问题

    有一个整数n,写一个函数f(n),返回0到n之间出现的"1"的个数.比如f(1)=1:f(13)=6,问一个最大的能满足f(n)=n中的n是什么? 例如:f(13)=6, 因为1, ...

  5. 我的Android进阶之旅------>Android通过使用Matrix旋转图片来模拟碟片加载过程

    今天实现了一个模拟碟片加载过程的小demo,在此展示一下.由于在公司,不好截取动态图片,因此就在这截取两张静态图片看看效果先. 下面简单的将代码列出来. setp1.准备两张用于旋转的图片,如下:lo ...

  6. cordova 实现拨打电话-只需两步(H5)

    cordova 实现拨打电话: 第一步配置conf.xml在cordova中所有的URL Schemes 都是服从于白名单的,所以a tel 在这无法正常使用.解决方法是在项目config.xml中添 ...

  7. 使用viewholder优化listview,减少findViewById的次数

  8. Ruby 打印

    puts: 输出内容自动换行,转义后再输出(转义符),可传递多个参数puts("this is ge num=",a,"this is b=",b)   pri ...

  9. 同源策略 , CORS

    一 . 同源策略 同源策略( Same origin policy ) 是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响,可以说Web是构建在同源 ...

  10. (KEILv5)使用matlab绘制从KEIL memory导出的内存数据

    使用matlab绘制从KEIL memory导出的内存数据 如标题,某些时候我们需要分析keil调试过程中的数据,比如从I2S.SPI.I2C或者UART获取到的波形数据,这些数据时数字流,通过逻辑分 ...