我正在嘗試使用Java Scripting API找到已安裝的腳本引擎,但出現問題。Java腳本API無法按名稱檢索引擎
在這個演示程序中,我使用的ScriptEngineManager檢索工廠和列出所有的引擎我。之後,我嘗試按名稱獲取它,但結果爲空。
public class App {
public static void main(String[] args) {
ScriptEngineManager manager = new ScriptEngineManager();
List<ScriptEngineFactory> factories = manager.getEngineFactories();
for (ScriptEngineFactory factory : factories) {
System.out.println("\nName : " + factory.getEngineName());
System.out.println("Version : " + factory.getEngineVersion());
System.out.println("Language name : " + factory.getLanguageName());
System.out.println("Language version : " + factory.getLanguageVersion());
System.out.println("Extensions : " + factory.getExtensions());
System.out.println("Mime types : " + factory.getMimeTypes());
System.out.println("Names : " + factory.getNames());
ScriptEngine engine = manager.getEngineByName(factory.getEngineName());
if (engine == null) {
System.out.println("Impossible to find the engine with name " + factory.getEngineName()+"\n");
}
}
}
}
,其結果是:
版本:1.7版本3 PRERELEASE
語言名稱:ECMAScript的
語言版本:1.8
擴展:[JS]
種MIME類型:應用/ JavaScript中,應用/ ECMAScript的,文本/ JavaScript的,文本/ ecmascript]中
名稱:[JS,犀牛,JavaScript中,JavaScript中,ECMAScript中,ecmascript]中
不可能找到發動機用Mozilla的名字犀牛
名稱:Jython的
版本:2.7.0
語言名稱:蟒蛇
語言版本:2.7
擴展:[PY]
MIME類型:文本/蟒蛇,應用/蟒蛇,文本/ X-蟒蛇,應用/ X-蟒蛇]
名稱:蟒,Jython的]
不可能找到名字的Jython發動機
它是第一個引擎** Mozila犀牛工作**而不是爲** **的Jython引擎,使用工廠.getNames()是一個解決方案,其他的確定,我無法理解的是爲什麼它適用於其中一個而不適用於其他應用程序,我應該在我的機器上安裝某些東西(解釋器)以使jython正常工作嗎? –
確實很奇怪,對不起,我沒有/使用Jython - 我不知道它必須如何安裝 –
你可以嘗試通過'getEngineByMimeType(「text/python」)獲取引擎' –