1 回答

TA貢獻1795條經(jīng)驗 獲得超7個贊
腳本引擎通過 META-INF/services/javax.script.ScriptEngineFactory 注冊,其中包含數(shù)據(jù):
org.mvel2.jsr223.MvelScriptEngineFactory
首先,確保您實際打包了一個包含此文件和文本的 JAR。注意打包在單個大 jar 文件中可能會導(dǎo)致該文件被覆蓋或忽略——如果這樣做,該文件必須包含應(yīng)用程序引用的所有腳本引擎。未能找到此文件也可能是類加載器管理不善的結(jié)果。
來自甲骨文: https ://docs.oracle.com/javase/8/docs/api/javax/script/compact2-package-summary.html
腳本引擎發(fā)現(xiàn)和元數(shù)據(jù):寫入腳本 API 的應(yīng)用程序可能對腳本引擎有特定要求。有些可能需要特定的腳本語言和/或版本,而另一些可能需要特定的實現(xiàn)引擎和/或版本。腳本引擎以指定的方式打包,以便可以在運行時發(fā)現(xiàn)引擎并查詢屬性。Engine 發(fā)現(xiàn)機制基于 Jar 文件規(guī)范中描述的服務(wù)發(fā)現(xiàn)機制。腳本引擎實現(xiàn)類打包在 jar 文件中,其中包含名為 META-INF/services/javax.script.ScriptEngineFactory 的文本資源。對于打包在 jar 文件中的每個 ScriptEngineFactory,此資源必須包含一行。ScriptEngineManager 包含 getEngineFactories 方法來獲取使用此機制發(fā)現(xiàn)的所有 ScriptEngineFactory 實例。ScriptEngineFactory 具有查詢腳本引擎屬性的方法。
添加回答
舉報