0
我正在編寫intelij插件並希望在運行時下載特定於平臺的人造物。Jxbtrowser在運行時檢索平臺特定的人工製品
我已經將平臺特定的jar加載到類加載器中,但當前綴「/」時,ChromiumExtractor無法訪問嵌套的資源。所以我可以訪問資源爲「chromium-mac.zip」,但圖書館不能。
我試圖將嵌套的壓縮鉻製品解壓縮到正確的目錄中,但這不會導致工作的解決方案。所以現在我一直試圖拼湊出圖書館提取人工製品的方式,但是由於代碼被混淆,它非常乏味。
jxbrowser插件是否支持在運行時檢索artefact。是否可以添加這樣的支持(jxbtrowser devs使用SO來支持問題等等,這是給他們的信息:D)?採取
方法:
// inside intelij plugin . The plugin has the jxbrowser-6.6.jar
// and license.jar loaded into the classloader. the platform specific
// artefact will be retrieved manual).
val cl = URLClassLoader(arrayOf(URL("file://.../jxbrowser-mac-6.6.jar")), Browser::class.java.classLoader)
val backup = Thread.currentThread().contextClassLoader
try {
Thread.currentThread().contextClassLoader = cl
// can access like this
Thread.currentThread().contextClassLoader.getResource("chromium-mac.zip")
val ce = ChromiumExtractor.create()
// cannot access as resource is retrieved "/chromium-mac.zip" ?
ce.extract(BrowserPreferences.getChromiumDir())
browser = Browser()
} finally {
Thread.currentThread().contextClassLoader = backup
}