Last 5.3 release ever available: PHP 5.3.29 - 5.3 now EOL

Utilisation simple

Exemple #1 Exemple avec Java

<?php
// Créer une instance de la classe Java java.lang.System dans PHP
$system = new Java('java.lang.System');

// Accéder aux propriétés
echo 'Java version=' $system->getProperty('java.version') . '<br />';
echo 
'Java vendor=' $system->getProperty('java.vendor') . '<br />';
echo 
'OS=' $system->getProperty('os.name') . ' ' .
             
$system->getProperty('os.version') . ' on ' .
             
$system->getProperty('os.arch') . ' <br />';

// Exemple avec java.util.Date
$formatter = new Java('java.text.SimpleDateFormat',
                      
"EEEE, MMMM dd, yyyy 'at' h:mm:ss a zzzz");

echo 
$formatter->format(new Java('java.util.Date'));
?>

Exemple #2 Exemple avec AWT

<?php
// Cet exemple ne fonctionne qu'en mode CLI.

$frame  = new Java('java.awt.Frame''PHP');
$button = new Java('java.awt.Button''Hello Java World!');

$frame->add('North'$button);
$frame->validate();
$frame->pack();
$frame->visible True;

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

$frame->dispose();
?>
Notes :
  • new Java() crée une nouvelle instance d'une classe, si un constructeur valable est disponible. Si aucun paramètre n'est passé, et le constructeur par défaut est utile pour accéder à ces classes telles que "java.lang.System", qui fournissent leur fonctionnalités via des méthodes statiques.
  • Lors de l'accès aux membres d'une instance, PHP commencera par rechercher les membres Bean, puis les champs publics. En d'autres termes, "print $date.time" sera d'abord résolu par "$date.getTime()", puis par "$date.time";
  • Les membres statiques et d'instance sont accessibles avec la même syntaxe. De plus, si un objet est de type "java.lang.Class", les membres statiques de la classe (champs et méthodes) sont accessibles.
  • Les exceptions sont transformées en alertes PHP, et résultat NULL. Les alertes peuvent être supprimées en préfixant l'appel par l'opérateur >. Les fonctions suivantes peuvent être utilisées pour lire et effacer la dernière erreur remontée :

  • Les surcharges de fonctions sont des problèmes épineux, étant données les différences de type de valeurs entre les deux /bin/bash: q: command not found mais efficace pour déterminer la meilleur fonction à utiliser. De plus, les noms de méthodes ne sont pas sensibles à la casse en PHP, ce qui augmente le nombre de conflits potentiels. Une fois qu'une méthode est sélectionnée, les paramètres sont transtypés, avec une perte d'information potentielle non négligeable (par exemple, les nombres à virgules flottante en double précisions seront convertis en booléen).
  • Traditionnellement en PHP, les tableaux et les tables de hashage peuvent être interchangées, et fonctionnent de la même façon. Notez que les tables de hashage de PHP ne peuvent être indexées qu'avec des entiers ou des chaînes, et que le type primitif de tableau de Java ne peut comporter de trous dans les index. Notez aussi que les valeurs sont passées par valeur, ce qui peut être coûteux en mémoire et en temps.

add a note add a note

User Contributed Notes 3 notes

up
1
anto dot justus at gmail dot com
5 years ago
Session sharing with php and java
------------------------------------------

<?php require_once("java/Java.inc");
$session = java_session();
?>

<HTML>
<TITLE>PHP and JSP session sharing</title>
<BODY>
<?php

if(is_null(java_values($session->get("counter")))) {
 
$session->put("counter", 1);
}

$counter = java_values($session->get("counter"));
print
"HttpSession variable \"counter\": $counter<br>\n";
$session->put("counter", $counter+1);
?>
<a href="sessionSharing.jsp">JSP page</a>
</BODY>
</HTML>
up
0
sebastiansajie at yahoo dot com
4 months ago
Hi, I tried example #1 but keep getting a - Class 'Java' not found error. Do I need to point to the library that has the java class ? Or do I need to download the 'java.lang.System' jar file and store it in my webserver and point to it? How may this be done. Thank you for your answer.
up
-3
anto dot justus at gmail dot com
5 years ago
php java 

The PHP code here is simple and straight forward. It is not
OOP. But you probably got enough of that while doing the
Java code.

<?php

java_require
("F:\\wamp5\\www\\classes\\");
$obj = new Java("hello");

// Call the "sayHello()" method

$output = $obj->SayHello();

echo
$output.' this text in PHP

'
; // Displays (so this comes from the class!)

// Call the "SayNumber()" method

$output = $obj->SayNumber();

// Displays (so this comes from the class!)
echo $output.' is a lucky number';

//Because the JVM caches everything we want reset while
playing with the code. Otherwise the

// a cached version of the same class file will be used
rather than the new one

echo "
Resetting back-end to initial state\n"
;

// suppress the warning message from the use of reset.

@java_reset();

?>

That's it. Now browse to the PHP page and you should get
the results shown below.
To Top