mozilla

Revision 261309 of Java em Extensões do Firefox

  • Slug da revisão: Java_em_Extensões_do_Firefox
  • Título da revisão: Java em Extensões do Firefox
  • ID da revisão: 261309
  • Criado:
  • Autor: RuiMaciel
  • É revisão atual? Sim
  • Comentário ponto de partida: tradução da versão en

Conteúdo da revisão

Se houver a necessidade de chamar código de Java dentro duma extensão do Firefox, o LiveConnect poderá ser útil. O LiveConnect dá ao código JavaScript da sua extensão (ligado ou contido no seu código XUL) acesso a dois objectos: java e Packages. Estes dois objectos tornam possível o uso das classes padrão do JDK. Por exemplo:

var aJavaList = new java.util.LinkedList();

Se quiser carregar os seus próprios JARs, então pode criar a sua classe carregadora Java. Por exemplo:

var cl = new java.net.URLClassLoader(
    [ new java.net.URL('http://foo.net/bar.jar') ]
);

var aClass = java.lang.Class.forName("org.mozilla.developer.HelloWorld", true, cl);
var aStaticMethod = aClass.getMethod("getGreeting", []);
var greeting = aStaticMethod.invoke(null, []);
alert(greeting);

Esta técnica funciona apenas em código JavaScript ligado dentro de ou contido em ficheiros XUL. Se quiser chamar código Java de dentro de código JavaScript que implementa componentes XPCOM, neste momento só o poderá fazer recorrendo a outra outra técnica (ver Java Firefox Extension). Uma boa razão para chamar Java de dentro de um componente XPCOM em vez de XUL é para manter um singleton (tipo de objecto que força a existência de apenas um objecto duma classe )através todas as janelas do Firefox. Se chamar Java pelo XUL então cada janela do Firefox possuirá a sua própria classe e, por consequência, o seu singleton.

{{ languages( { "en": "en/Java_in_Firefox_Extensions" } ) }}

Fonte da revisão

<p>
</p><p>Se houver a necessidade de chamar código de Java dentro duma <a href="pt/Extens%c3%a3o">extensão</a> do Firefox, o <a class="external" href="http://en.wikipedia.org/wiki/LiveConnect">LiveConnect</a> poderá ser útil. O LiveConnect dá ao código <a href="pt/JavaScript">JavaScript</a> da sua extensão (ligado ou contido no seu código XUL) acesso a dois objectos: <code>java</code> e <code>Packages</code>. Estes dois objectos tornam possível o uso das classes padrão do JDK. Por exemplo:
</p>
<pre class="eval">var aJavaList = new java.util.LinkedList();
</pre>
<p>Se quiser carregar os seus próprios JARs, então pode criar a sua classe carregadora Java. Por exemplo:
</p>
<pre class="eval">var cl = new java.net.URLClassLoader(
    [ new java.net.URL('<a class=" external" href="http://foo.net/bar.jar'" rel="freelink">http://foo.net/bar.jar'</a>) ]
);

var aClass = java.lang.Class.forName("org.mozilla.developer.HelloWorld", true, cl);
var aStaticMethod = aClass.getMethod("getGreeting", []);
var greeting = aStaticMethod.invoke(null, []);
alert(greeting);
</pre>
<p>Esta técnica funciona apenas em código JavaScript ligado dentro de ou contido em ficheiros XUL. Se quiser chamar código Java de dentro de código JavaScript que implementa componentes XPCOM, neste momento só o poderá fazer recorrendo a outra outra técnica (ver <a class="external" href="http://simile.mit.edu/java-firefox-extension/">Java Firefox Extension</a>). Uma boa razão para chamar Java de dentro de um componente XPCOM em vez de XUL é para manter um singleton (tipo de objecto que força a existência de apenas um objecto duma classe )através todas as janelas do Firefox. Se chamar Java pelo XUL então cada janela do Firefox possuirá a sua própria classe e, por consequência, o seu singleton.
</p>{{ languages( { "en": "en/Java_in_Firefox_Extensions" } ) }}
Reverter para esta revisão