研究了一下tomcat的啓動項目,發現Command line argument: -Djava.endorsed.dirs
之前接觸過 java.ext.dirs 用於擴展jdk的系統庫,那麼 -Djava.endorsed.dirs 又有什麼作用呢?
這有什麼用?
比如java的原生api不能滿足需求,假設我們需要修改 ArrayList 類,由於我們的代碼都是基於ArrayList做的,那麼就必需用到 Java endorsed 技術,將我們自己的ArrayList(注意包和類名和java自帶的都是一樣的)打成一個jar包,放入到-Djava.endorsed.dirs指定的目錄中,這樣我們在使用java的ArrayList的時候就會調用的我們定製的代碼中,是不是很酷!!
根據官方文檔描述:如果不想添加-D參數,如果我們希望基於這個JDK下的都統一改變,那麼我們可以將我們修改的jar放到:$JAVA_HOME/jre/lib/endorsed這樣基於這個JDK的所有的ArrayList都改變了!!