tomcat中發現的-Djava.endorsed.dirs是什麼?

研究了一下tomcat的啓動項目,發現Command line argument: -Djava.endorsed.dirs

之前接觸過 java.ext.dirs 用於擴展jdk的系統庫,那麼 -Djava.endorsed.dirs 又有什麼作用呢?

java提供了endorsed技術:
關於endorsed:可以的簡單理解爲-Djava.endorsed.dirs指定的目錄面放置的jar文件,將有覆蓋系統API的功能。可以牽強的理解爲,將自己修改後的API打入到虛擬機指定的啓動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都改變了!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章