1. 程式人生 > >使用-jar時指定第三方的classpath的方法

使用-jar時指定第三方的classpath的方法

最近有個工具要用java來實現,具體需求是掃描目錄下的所有的jar並將其中符合條件的類載入。

稍微要注意的難點在於如何載入某些路徑下的類而不會出現ClassNotFoundException。

這個任務交給一個同事做,搞了幾星期,最後給我一個噁心的方式:使用jar中的manifest.mf中的Class path屬性,每次有掃描的jar時,將該jar的相對路徑加到該屬性中。。

沒辦法,只能自己搞定了,上網找了一下,發現了一個jvm啟動引數java.ext.dirs, 可以用來指定ext classloader的掃描路徑,於是我寫了一個bat,裡面就一句java -Djava.ext.dirs=. -jar myTool.jar

,就搞定了。

以後只要將要掃描的包copy到同一目錄下就OK了。。。

java.ext.dirs這個屬性可以用來指定一個或者多個指定的掃描路徑,多個之間使用系統分隔符來分隔(即File.pathSeparatorChar的值,window環境下為分號“;”)