Last active
March 1, 2025 18:30
-
-
Save gAmUssA/5b2844c678bc14265d99 to your computer and use it in GitHub Desktop.
List All Scripting Engine Factories with JavaScript
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 "---------------------------------" | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
----------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] | |
--------------------------------- |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@bytor99999 Looks like, groovy is available in a classapth of member node. You should be able to execute groovy from ManCenter