0

PHP com Suporte a Java

criado por Rogério Bourscheidt Kunkel em 21/08/2005 8:35pm
A partir do PHP 4 temos um mecanismo simples para que possamos criar e chamar métodos de objetos Java do PHP. A Java Virtual Machine (JVM) é criada usando a Java Native Interface (JNI) e tudo é executado dentro do mesmo processo.

Existem diversas implementações com sucesso da Sun, IBM e Kaffe de Kits de Desenvolvimento para Java (JDKs).

Esta propriedade de suorte do PHP é muito interessante devido ao fato do aproveitamento de códigos providos de outras linguagens. Por exemplo, caso você tenha uma aplicação em Java e queira tornar a mesma aplicável ao formato PHP devido a problemas de velocidade, interpretador JDk no cliente ou outros você pode adaptar seu código com pequenos ajustes para que a mesma possa ser utilizada no ambiente PHP.

Sempre é bom lembrar que para se utilizar deste recurso você deve ter habilitada a dll do java no php.ini (extension=php_java.dll), retirando o ; do início do nome da dll.

O primeiro exemplo que segue mostra como acessar as propriedades de objetos Java:

<?php
//--------------------
//Exemplo 1
//Acesso de propriedades Java
//--------------------
$system = new Java("jva.lang.System");
print "Java version=" . $system->getProperty("java.version") . "<BR>\n";
print "Java vendor=" . $System->getProperty("java.vendor") . "<p>\n\n";
print "OS=" . $system->getProperty("os.name") . " ". // nome do sistema operacioanl
        $system->getProperty("os.version") . " on ".  // versão
        $system->getProperty("os.arch") . "<BR>\n";

// formata a data
$formatter = new Java("java.text.SimpleDateFormat", "EEEE, MMMM dd, yyyy 'at' h:mm:ss a zzzz");
print $formatter->format(new Java("java.util.Date")) . "\n";
?>

No segundo exemplo vamos mostrar como usar a AWT para criar um botão:

<?php
//--------------------
//Exemplo 2
//processo para criação de botão através da AWT
//--------------------
$frame = new Java("java.awt.Frame", "Zend");
$button = new Java("java.awt.Button", "Oi mundo Java!");
$frame->add("North", $button);
$frame->validate();
$frame->pack();
$frame->visible = True;

$thread = new Java("java.lang.Thread");
$thread->sleep(10000);

$frame->dispose();
?>

É isso aí pessoal, no caso de qualquer dúvida basta enviar um comentário abaixo!

Abraços,
Rogério Bourscheidt Kunkel

Comentários:

Mostrando 1 - 5 de 5 comentários
Camila disse:
olá!!!
tento fazer um programa php usar um classe java, porém sempre erro, pois ele naum encontra a classe....

alguém pode me ajudar??

beijos
27/03/2006 12:06pm (~10 anos atrás)

Olá Marlon,

O parâmetro do construtor new java(); seria um argumento do método, assim com o Rodrigo especificou. Caso não tenha ficado bem claro eh so dar um grito.
Referente a questão do desenpenho não éh de se dizer que irá ficar mais rápido, mas a vantagem encontra-se no fato de que esta propriedade de suporte do PHP aproveita códigos providos de outras linguagens.

Sds,

Rogério Kunkel
24/08/2005 11:11am (~11 anos atrás)

O segundo parâmetro seria os "argumentos" do método "construtor" da Classe, exemplo.
Java.java
***
class MyJava {
public MyJava(String nome) {
}
}
***
No php chamariamos essa classe assim:
***
$myJava = new Java("MyJava", "Php e Java");
***

O segundo parâmetro seria o argumento do método, sacou?

Obs: Site oficial da integração http://www.php.net/manual/pt_BR/ref.java.php

Sem mais, Rodrigo.
23/08/2005 6:45pm (~11 anos atrás)

pra que serve oo segundo parâmetro do construtor new java();, passado como "zend" no exemplo da awt?
Uma outra questão é como integrar php + java em *nix? Tem também uma extension java.so?
E quanto ao desempenho do site? A questão da velocidade e processamento ainda sim fazem com que compense essa integração? Eeeei, não estou supondo nada, só são questões que eu n/ão sei responder por isso estou perguntando
23/08/2005 12:59pm (~11 anos atrás)

Parabéns Rogério pelo artigo.

Só pra acrescentar o conhecimento da comunidade no ano passado criei 3 artigos sobre essa integração.

Integrando o PHP com Java (parte 1) - http://www.phpbrasil.com/articles/article.php/id/777

Integrando o PHP com Java (parte 2) - http://www.phpbrasil.com/articles/article.php/id/795

Integrando o PHP com Java (parte 3) - http://www.phpbrasil.com/articles/article.php/id/825

Sem mais, Rodrigo.
21/08/2005 9:33pm (~11 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)