Java ScriptEngine idiomas soportados
-
21-12-2019 - |
Pregunta
Java tiene un ScriptEngine sistema que permite ejecutar y evaluar las declaraciones en un idioma diferente.
Sé que es un hecho que JavaScript es compatible, pero no pude encontrar otros idiomas para trabajar con él.
Es, por ejemplo, Ruby implementado?
Solución
.. Sé por un hecho de que se apoya JavaScript, ..
ecascript , técnicamente.
. Pero no pude encontrar otros idiomas para trabajar con él. ¿Es, por ejemplo, Ruby implementado?
no.El motor Ecmascript es el único incluido de forma predeterminada, la última vez que escuché.
Otros consejos
Aquí hay un script para determinar todos los idiomas en su sistema:
import java.util.List;
import javax.script.ScriptEngineManager;
import javax.script.ScriptEngine;
import javax.script.Bindings;
import javax.script.ScriptContext;
import javax.script.ScriptEngineFactory;
public class Test {
public static void main(String[] args)
{
ScriptEngineManager mgr = new ScriptEngineManager();
List<ScriptEngineFactory> factories = mgr.getEngineFactories();
for (ScriptEngineFactory factory : factories)
{
System.out.println("ScriptEngineFactory Info");
String engName = factory.getEngineName();
String engVersion = factory.getEngineVersion();
String langName = factory.getLanguageName();
String langVersion = factory.getLanguageVersion();
System.out.printf("\tScript Engine: %s (%s)\n", engName, engVersion);
List<String> engNames = factory.getNames();
for (String name : engNames)
{
System.out.printf("\tEngine Alias: %s\n", name);
}
System.out.printf("\tLanguage: %s (%s)\n", langName, langVersion);
}
}
}
Espero que esto ayude.
No en ScriptEngine, pero aún puede usar BSF. Desde la marco de scripting de Bean FeaseferRer de Apache Commons , puede encontrar su documentación aquí . -
BSF 2.x admite varios idiomas de scripting Actualmente:
- javascript (usando Rhino Ecmascript, desde el proyecto Mozilla)
- netrexx (una extensión del lenguaje de scripting de IBM Rexx en Java)
- commons jexl
- python (usando jython)
- tcl (usando jacl)
- xslt stylesheets (como un componente del Xalan y xerces del proyecto de Apache XML)
Además, los siguientes idiomas son compatibles con sus propios motores BSF:
Hay varios otros idiomas disponibles.Por ejemplo, Jython (implementación de Python en Java).La forma de usar otros idiomas es agregar el archivo JAR a Classpath y hacer una referencia al nombre correcto.
para Ruby, hay jruby.Vea lo siguiente: https://github.com/jruby/jruby/wiki/javaintegation
ScriptEngineManager m = new ScriptEngineManager();
ScriptEngine rubyEngine = m.getEngineByName("jruby");
El Java ScriptEngine API de trabajo con todos los JSR-223 Lenguajes de secuencias de comandos.No he encontrado una bien documentada la lista completa de estos antes, pero este post hace un trabajo bastante bueno, Donde puedo encontrar una lista de JSR-223 lenguajes de secuencias de comandos? Aquí está una lista de ese puesto,
JSR-223 motores de secuencias de comandos
- AWK
- BeanShell
- ejs
- FreeMarker
- Groovy
- Jaskell
- Java
- JavaScript
- JavaScript (Navegador Web)
- La jalea
- SIIII
- Jexl
- jst
- JudoScript
- JUEL
- OGNL
- Pnuts
- Python
- Ruby
- Esquema de
- El sueño
- Tcl
- Velocidad
- XPath
- XSLT
JSR 223 motores de secuencias de comandos mantenido en otro lugar
- JavaFX Script
- ABCL
- AppleScript
- Bex script
- OCaml De Secuencias De Comandos De Proyecto
- PHP
- PHP (otro)
- Python
- Smalltalk
- CajuScript
- MathEclipse
La mayoría tienen una especial aplicación para que funcione.Por ejemplo python solo no funcionará usted necesita el Jython frasco añadido a la ruta de clases.Mismo para Ruby deberás JRuby.