Inicie jsdom desde Rhino en Java
Estoy siguiendoesta respuesta:
Me las arreglé para correr simpleJavaScript
código deMotor Rhino en Java
Pero cuando se trata deD3.js, por ejemplo:
var svg = d3.select("body").append("svg")
como puedes verd3
requiere que DOM esté disponible en primer lugar.
Entonces, por esoJSDOM Se supone que es la solución.
PeroJSDOM
pasa a depender derequirejs
DeRequireJs
sitio:
losr.js El archivo le permite ejecutar el optimizador y ejecutar módulos en Node,Rinoceronte o xpcshell.
Entonces mi código Java Rhino se ve así:
FileReader fr1 = new FileReader("lib/r.js");
FileReader fr2 = new FileReader("lib/jsdom.js");
engine.eval(fr1);
engine.eval(fr2);
Pero por ahora termino teniendo un error como este:
ReferenceError: "argumentos" no está definido.
Entonces encontréesta buena respuesta:
Entonces mi código se ve así:
cx.evaluateReader(sharedScope, new FileReader("lib/r.js"), "require", 1, null);
cx.evaluateReader(sharedScope, new FileReader("lib/loader.js"), "loader", 1, null);
cx.evaluateReader(sharedScope, new FileReader("lib/jsdom.js"), "loader", 1, null);
Error: el nombre del módulo "fs" aún no se ha cargado
Eso básicamente significa quejsdom.js
en sí está haciendo referencia a:
var fs = require('fs');
var path = require('path');
var URL = require('url');
Entonces, parece que solo necesito descargarlos todos.
Perofs - es sobreSistema de archivos. Eso significa que depende de NodeJsnativo implementación. Lo cual no es bueno para mi intentoestar en el lado de Java y JS.
Actualizar:
Por ahora estoy investigando en esta dirección:
https://github.com/nodyn/jvm-npm
http://nodyn.io/
La pregunta es: ¿Cómo puedo cargar JSDOM a Rhino para permitir que D3.js genere mi SVG?
Una vez más: Java Rhino -> D3.JS -> JSDOME -> RequireJS ->FS => SVG?
"O" : ¿Cómo puede utilizar Mozilla Rhino el módulo nodejs "fs"?
Sé que puedo usarPhantomJS, pero estoy buscando o algo que es pegajoso para Java. Más ligero, sin necesidad de procesos externos de lanzamiento.