diff options
author | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:42:52 -0500 |
---|---|---|
committer | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:42:52 -0500 |
commit | 074785cea106179cb3305637055ab0a009ca74f2 (patch) | |
tree | e6ae371cccd642aa2b67f39752a2cdf1fd4eb040 /files/pt-pt/java_em_extensões_do_firefox | |
parent | da78a9e329e272dedb2400b79a3bdeebff387d47 (diff) | |
download | translated-content-074785cea106179cb3305637055ab0a009ca74f2.tar.gz translated-content-074785cea106179cb3305637055ab0a009ca74f2.tar.bz2 translated-content-074785cea106179cb3305637055ab0a009ca74f2.zip |
initial commit
Diffstat (limited to 'files/pt-pt/java_em_extensões_do_firefox')
-rw-r--r-- | files/pt-pt/java_em_extensões_do_firefox/index.html | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/files/pt-pt/java_em_extensões_do_firefox/index.html b/files/pt-pt/java_em_extensões_do_firefox/index.html new file mode 100644 index 0000000000..c6d49cd20f --- /dev/null +++ b/files/pt-pt/java_em_extensões_do_firefox/index.html @@ -0,0 +1,26 @@ +--- +title: Java em Extensões do Firefox +slug: Java_em_Extensões_do_Firefox +tags: + - Extensões + - Java + - Todas_as_Categorias +--- +<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> |