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?

¿Fue útil?

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.

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top