Skip to content

Instantly share code, notes, and snippets.

@gAmUssA
Last active March 1, 2025 18:30
Show Gist options
  • Save gAmUssA/5b2844c678bc14265d99 to your computer and use it in GitHub Desktop.
Save gAmUssA/5b2844c678bc14265d99 to your computer and use it in GitHub Desktop.
List All Scripting Engine Factories with JavaScript
import javax.script.ScriptEngine
import javax.script.ScriptEngineFactory
import javax.script.ScriptEngineManager;
//System.properties.each { k, v -> println("$k = $v") }
println System.properties['java.runtime.version']
println "---------------------------------"
ScriptEngineManager manager = new ScriptEngineManager()
ScriptEngine nashorn = manager.getEngineByName("nashorn")
if (nashorn != null) {
println "Nashorn is present."
println "---------------------------------"
printEngineInfo nashorn.getFactory()
} else {
println "Nashorn is not present."
}
for (ScriptEngineFactory f : manager.getEngineFactories()) {
printEngineInfo(f)
}
def printEngineInfo(ScriptEngineFactory factory) {
println "engine name=" + factory.engineName
println "engine version=" + factory.engineVersion
println "language name=" + factory.languageName
println "extensions=" + factory.extensions
println "language version=" + factory.languageVersion
println "names=" + factory.names
println "mime types=" + factory.mimeTypes
println "---------------------------------"
}
// begin Nashorn specific
// uncomment if running with JDK8/Nashorn
/*
function println(param){
java.lang.System.out["println(String)"](param);
};
load("nashorn:mozilla_compat.js");
*/
// end Nashorn specific
function printDetails(factory) {
println("----------" + factory.languageName + "-----------");
println("engine name=" + factory.engineName);
println("engine version=" + factory.engineVersion);
println("language name=" + factory.languageName);
println("extensions=" + factory.extensions);
println("language version=" + factory.languageVersion);
println("names=" + factory.names);
println("mime types=" + factory.mimeTypes);
}
function echo() {
var ScriptEngine = Packages.javax.script.ScriptEngine;
var ScriptEngineManager = Packages.javax.script.ScriptEngineManager;
var manager = new ScriptEngineManager();
// var engine = manager.getEngineByName("javascript");
// return engine.getFactory().engineName;
var factories = manager.getEngineFactories().toArray();
var size = factories.length;
for (var i = 0; i < size; i++) {
printDetails(factories[i]);
}
println("---------------------------------");
return size;
}
echo();
function printDetails(factory) {
var str="";
str += ("----------" + factory.languageName + "-----------");
str += ("engine name=" + factory.engineName);
str += ("engine version=" + factory.engineVersion);
str += ("language name=" + factory.languageName);
str += ("extensions=" + factory.extensions);
str += ("language version=" + factory.languageVersion);
str += ("names=" + factory.names);
str += ("mime types=" + factory.mimeTypes);
return str;
}
function echo() {
var ScriptEngine = Packages.javax.script.ScriptEngine;
var ScriptEngineManager = Packages.javax.script.ScriptEngineManager;
var manager = new ScriptEngineManager();
// var engine = manager.getEngineByName("javascript");
// return engine.getFactory().engineName;
var factories = manager.getEngineFactories().toArray();
var size = factories.length;
var result="";
for (var i = 0; i < size; i++) {
var str = printDetails(factories[i]);
result += str;
}
return result;
}
echo();
----------AppleScript-----------
engine name=AppleScriptEngine
engine version=1.1
language name=AppleScript
extensions=[scpt, applescript, app]
language version=2.4
names=[AppleScriptEngine, AppleScript, OSA]
mime types=[application/x-applescript, text/plain, text/applescript]
----------python-----------
engine name=jython
engine version=2.7.0
language name=python
extensions=[py]
language version=2.7
names=[python, jython]
mime types=[text/python, application/python, text/x-python, application/x-python]
----------Groovy-----------
engine name=Groovy Scripting Engine
engine version=2.0
language name=Groovy
extensions=[groovy]
language version=2.4.3
names=[groovy, Groovy]
mime types=[application/x-groovy]
----------ECMAScript-----------
engine name=Oracle Nashorn
engine version=1.8.0_40
language name=ECMAScript
extensions=[js]
language version=ECMA - 262 Edition 5.1
names=[nashorn, Nashorn, js, JS, JavaScript, javascript, ECMAScript, ecmascript]
mime types=[application/javascript, application/ecmascript, text/javascript, text/ecmascript]
----------ruby-----------
engine name=JSR 223 JRuby Engine
engine version=9.0.0.0.pre1
language name=ruby
extensions=[rb]
language version=jruby 9.0.0.0.pre1
names=[ruby, jruby]
mime types=[application/x-ruby]
---------------------------------
@bytor99999
Copy link

----------ECMAScript-----------engine name=Mozilla Rhinoengine version=1.7 release 3 PRERELEASElanguage name=ECMAScriptextensions=[js]language version=1.8names=[js, rhino, JavaScript, javascript, ECMAScript, ecmascript]mime types=[application/javascript, application/ecmascript, text/javascript, text/ecmascript]
----------ECMAScript-----------engine name=Mozilla Rhinoengine version=1.7 release 3 PRERELEASElanguage name=ECMAScriptextensions=[js]language version=1.8names=[js, rhino, JavaScript, javascript, ECMAScript, ecmascript]mime types=[application/javascript, application/ecmascript, text/javascript, text/ecmascript]
----------ECMAScript-----------engine name=Mozilla Rhinoengine version=1.7 release 3 PRERELEASElanguage name=ECMAScriptextensions=[js]language version=1.8names=[js, rhino, JavaScript, javascript, ECMAScript, ecmascript]mime types=[application/javascript, application/ecmascript, text/javascript, text/ecmascript]
----------ECMAScript-----------engine name=Mozilla Rhinoengine version=1.7 release 3 PRERELEASElanguage name=ECMAScriptextensions=[js]language version=1.8names=[js, rhino, JavaScript, javascript, ECMAScript, ecmascript]mime types=[application/javascript, application/ecmascript, text/javascript, text/ecmascript]----------gremlin-groovy-----------engine name=gremlin-groovyengine version=2.6.0language name=gremlin-groovyextensions=[groovy]language version=2.6.0names=[gremlin-groovy]mime types=[plain]----------Groovy-----------engine name=Groovy Scripting Engineengine version=2.0language name=Groovyextensions=[groovy]language version=2.3.4names=[groovy, Groovy]mime types=[application/x-groovy]

@gAmUssA
Copy link
Author

gAmUssA commented Apr 16, 2015

@bytor99999 Looks like, groovy is available in a classapth of member node. You should be able to execute groovy from ManCenter

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment