aboutsummaryrefslogtreecommitdiff
path: root/files/pt-pt/java_em_extensões_do_firefox
diff options
context:
space:
mode:
authorPeter Bengtsson <mail@peterbe.com>2020-12-08 14:42:52 -0500
committerPeter Bengtsson <mail@peterbe.com>2020-12-08 14:42:52 -0500
commit074785cea106179cb3305637055ab0a009ca74f2 (patch)
treee6ae371cccd642aa2b67f39752a2cdf1fd4eb040 /files/pt-pt/java_em_extensões_do_firefox
parentda78a9e329e272dedb2400b79a3bdeebff387d47 (diff)
downloadtranslated-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.html26
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>