pessoal eu estou desenvolvendo um browser em java e em minhas pesquisas cheguei ao rhino e ao suporte a scripting do java
Mas nao encontro referencias ao uso de ambos no sentido que precisaria que o javascript fosse interpretado e em seguida a pagina ser mostrada ao usuario
Eu informo a url ao interpretador para ele executa-lo?
Eu capturo o codigo da página e informo ela ao interpretador?
Ja achei varias fontes que me passaram mas nenhuma me foi útil
O Rhino é um interpretador Javascript escrito em Java que roda na JVM e que vem com a JVM a partir da versão 6, se não me engano.
Seu uso seria em:
Aplicações desktop que precisem de alguma coisa de Javascript internamente - por exemplo, uma aplicação que plotasse gráficos; você entraria com uma fórmula em Javascript e o aplicativo plotaria a fórmula;
Aplicações servidoras que precisem de alguma coisa de Javascript internamente - por exemplo, você poderia ter uma aplicação que importasse arquivos de dados de acordo com um programa em Javascript que o usuário fornecesse.
Ele não serve para controlar o browser.
Para controlar o browser, você precisa usar a implementação de Javascript fornecida pelo browser, e codificar o Javascript em um arquivo ou página lido pelo browser. Cada browser tem a sua implementação e os objetos que representam a página são ligeiramente diferentes de um browser para outro. Por isso é que programas que rodam no IE não rodam direito no Firefox e vice-versa; e mesmo programas que rodam em uma determinada versão do IE não rodam direito em outra versão do IE.
Se você quiser fazer um browser 100% java, com um interpretador Javascript, prepare-se que lá vem um trabalho simplesmente absurdo. A conclusão fatal é que você não vai terminar em tempo, mesmo que você fosse o Google e tivesse toneladas de dinheiro para queimar.
É melhor você ver como é possível “aninhar” um browser pronto dentro de sua aplicação.
Por exemplo, você poderia (usando o SWT do Eclipse) usar um controle específico do SWT que aninha o IE e/ou o Mozilla Firefox. Acho que esse controle também permite controlar o browser que fica “aninhado” na sua aplicação.