Inicie o jsdom do Rhino no Java

Estou acompanhandoesta resposta:

Eu consegui correr simplesJavaScript código deRhino Engine em Java.

Mas quando se trata deD3.js, por exemplo:

var svg = d3.select("body").append("svg")

como você pode verd3 requer que o DOM esteja disponível em primeiro lugar.

Então, por esse motivoJSDOM deveria ser a solução.

MasJSDOM passa a depender derequirejs

DeRequireJs local:

or.js O arquivo permite executar o otimizador e executar módulos no Node,Rinoceronte ou xpcshell.

Então meu código Java Rhino fica assim:

FileReader fr1 = new FileReader("lib/r.js");
FileReader fr2 = new FileReader("lib/jsdom.js");
engine.eval(fr1);
engine.eval(fr2);

Mas, por enquanto, acabo tendo um erro como este:

ReferenceError: "argumentos" não está definido.

Então eu acheiesta boa resposta:

Então meu código fica assim:

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);

Erro: o nome do módulo "fs" ainda não foi carregado

Isso basicamente significa quejsdom.js em si está se referindo a:

var fs = require('fs');
var path = require('path');
var URL = require('url'); 

Então, parece que eu só preciso baixar todos eles.

Masfs - é sobreSistema de arquivo. Isso significa que depende dos NodeJsnativo implementação. O que não é bom para minha tentativaestar no java comum e no lado js simples.

Atualizar:

Por enquanto estou fazendo minha pesquisa nessa direção:

https://github.com/nodyn/jvm-npm
http://nodyn.io/

A questão é: Como posso carregar o JSDOM no Rhino para permitir que o D3.js gere meu SVG?

Mais uma vez: Java Rhino -> D3.JS -> JSDOME -> RequireJS ->FS => SVG?

"Ou" : Como o Mozilla Rhino pode usar o módulo nodejs "fs"?

Eu sei que posso usarPhantomJS, mas estou procurando ou algo pegajoso em Java. Mais leve, sem o lançamento de processos externos envolvidos.

questionAnswers(2)

yourAnswerToTheQuestion