Red de conocimiento informático - Material del sitio web - ¿Cómo incrustar código java en javascript?

¿Cómo incrustar código java en javascript?

1.1. Obtener el administrador del intérprete de scripts

2. Obtener la instancia del intérprete js ScriptEngine del administrador

3. Obtener la instancia de Bindings para almacenar variables de JavaScript

4. Pase java.io.Bindings al método eval de ScriptEngine para devolver el resultado de la ejecución del script. Si se produce un error durante la ejecución, se generará una ScriptException.

Ejemplo: programa java ejecutando script javascript

throwsIOException{ScriptEngineManagerscriptManager=newScriptEngineManager; //Obtener el intérprete js del administrador //Definir el archivo de script que queremos ejecutar Stringfilename=null; //Obtener instancias de enlace utilizadas para almacenar variables de JavaScript a través del intérprete para que los scripts puedan usarlas. Bindingsbindings=js.createBindings; //Métodos para obtener y establecer valores en el mapa publicObjectget; //Utilice nuestros pares de nombre/valor (es decir, variables de JavaScript) Bindingsbindings=newSimpleBindings(defaults); Contenido ejecutado ScriptContextcontext=newSimpleScriptContext(); //Establezca estos enlaces en el contexto para que sean legibles.

Pero el script definido por dicha variable no se colocará en nuestro mapa context.setBindings(bindings, ScriptContext.GLOBAL_SCOPE); BufferedReaderin=newBufferedReader(newFileReader(file name)); ! =null){line=line.trim(); if(line.length()==0)continue; //saltar línea vacía if(line.charAt(0)=='#')continuar; comando intpos= line.indexOf(":"); if(pos==-1){thrownewIllegalArgumentException("Sintaxis: " línea);} Stringname=line.substring(0, pos).trim(); substring(pos 1).trim(); charfirstchar=value.charfirstchar=value.charAt(0); intlen=value.length(); charlastchar=value.charAt(len-1); amp;amp;lastchar=='"'){//El valor de las comillas dobles más las comillas es una cadena defaults.put(name, value.put(name,value);}}elseif("true".equals(value ) ){/Procesamiento de valores booleanos defaults.put(name.Boolean.TRUE);}elseif("false".equals(value)){defaults.put(name.put(name,Boolean.FALSE);}elseif ("null ".equals(value)){// Manejo de valores nulos defaults.put(name, null);}elseif(firstchar=='{'amp;amp;lastchar=='}'){// Si el valor está en un par Dentro de las llaves, ejecute el código javascript Stringscript=value.substring(1, len-1); más {/de lo contrario. Solo una cadena defaults.put(name, value); }}} // Un programa de prueba simple de la clase publicstaticvoidmain(String[]args) throwsIOException, ScriptException{ Configurationdefaults=newConfiguration(); defaults.load(args[0]) ;Establecer