我正在致力於Apache Wicket Web框架的extension,該框架允許用戶在運行時從瀏覽器以幾種編程語言執行代碼。其中一種語言是Scala,但當它作爲WAR文件捆綁並部署到Tomcat等容器時遇到問題。如何在託管環境中爲Scala解釋器設置類路徑?
當調用Scala的解釋,它拒絕與以下消息運行代碼:
Failed to initialize compiler: object scala not found.
** Note that as of 2.8 scala does not assume use of the java classpath.
** For the old behavior pass -usejavacp to scala, or if using a Settings
** object programatically, settings.usejavacp.value = true.
建立在斯卡拉設置usejavacp後,它仍然沒有在託管環境中工作。問題似乎是Scala解釋器無法在Java類路徑中找到Scala庫jar。
在網上搜索,我找到了一個proposal,它建議使用兩個名爲'boot.class.path'和'app.class.path'的類路徑資源,它應該包含所需的類路徑聲明。我試過了,它似乎工作。但是,這個解決方案的問題在於,我的擴展是打算捆綁到一個WAR文件中,並在不同的環境中運行,所以用戶需要根據所運行的環境修改這些資源。將每個jar的路徑包含到文件中也是很多工作。
也許我不完全理解這個提議。有沒有人知道這個解決方案?
這可能意味着爲每個特定環境手動設置類路徑,對嗎?有什麼辦法可以避免這種情況? – cretzel