1
我正在開發一個scala編譯器插件。編譯器插件在「refcheck」階段之後運行。它分析AST(抽象語法樹) 並生成一些輸出。在此插件中,我正在使用System.loadLibrary
在斯卡拉編譯器插件中加載本機庫
加載本機庫「scalaz3.dll」我計劃在Eclipse Scala IDE中使用編譯器插件。我在ScalaIde首選項中設置了-XPlugin
參數。 當我在Eclipse編譯Scala的源文件,該插件的refchecks
階段之後調用,並且工作正常(生成所需的輸出)
然而,當我修改的源文件和編譯,我得到跟隨錯誤。
The SBT builder crashed while compiling your project.
Native Library scalaz3.dll already loaded in another classloader.
看起來像ScalaIDE生成另一個類加載器,並嘗試在同一進程中加載插件類。
我在編譯器插件測試用例中遇到了同樣的問題。不過,我在build.sbt
中使用fork in Test := true
來修復它。 但我對如何在eclipse scala IDE中修復它毫無頭緒。
這裏有一些相關的職位(雖然不偏食的Scala IDE相關):
- .dll already loaded in another classloader?
- http://www.coderanch.com/t/79145/Websphere/Native-lib-already-loaded-another
- http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4750956