作者:周树草 | 来源:互联网 | 2023-05-24 13:31
是否有可能让Nashorn的load
方法在解析URI时使用项目的类路径?
这是我正在尝试做的事情:
(defn create-engine
"Creates a new nashorn script engine and loads dependencies into its context."
[dependencies]
(let [nashorn (.getEngineByName (ScriptEngineManager.) "nashorn")
scripts (map #(str "load('" % "');") dependencies)]
(.eval nashorn "var global = this;")
(doseq [script scripts] (.eval nashorn script))
nashorn))
(def app "public/Javascripts/app.js") ; in /resouces, on classpath
; resulting exception:
clojure.lang.Compiler$CompilerException:
javax.script.ScriptException: TypeError:
Cannot load script from public/Javascripts/app.js in at line number 1
小智..
7
Nashorn的load()
方法实际上支持使用前缀为URL的URL classpath:
.它将从类路径加载该前缀后面的文件.查看源代码 - http://cr.openjdk.java.net/~sundar/8025629/webrev.01/src/jdk/nashorn/internal/runtime/Context.java.html第502行.
1> 小智..:
Nashorn的load()
方法实际上支持使用前缀为URL的URL classpath:
.它将从类路径加载该前缀后面的文件.查看源代码 - http://cr.openjdk.java.net/~sundar/8025629/webrev.01/src/jdk/nashorn/internal/runtime/Context.java.html第502行.