Bon, j'ai pseudo-contourné mon problème. Je vous met ce que j'ai fais. Ca pourra toujours servir à d'autre.
En fait, j'ai fait une sorte de singleton.
Dans ma classe Main:
Code :
- public class Main {
- // Ouverture du socket pour le point d'entrée depuis Php
- public static final String JAVABRIDGE_PORT="8095";
- static final php.java.bridge.JavaBridgeRunner runner = php.java.bridge.JavaBridgeRunner.getRequiredInstance(JAVABRIDGE_PORT);
- // Récupération de l'instance de mon objet public
- public MyInt objet = MyInt.getInstance();
- public static void main(String[] args) {
- // Objet de portée interne au main
- MyInt obj = MyInt.getInstance();
- System.out.println(obj.jemanipulemonobjet());
- // Boucle pour dire que mon appli ne s'arrete pas
- while(true);
- }
- }
|
On remarque 2 instances de la classe MyInt. En fait, la fonction static getInstance() renvoi une instance sur l'objet déjà créé ou bien crée un nouvel objet si c'est son premier appel (cf code suivant). On a donc en fait objet et obj qui pointe vers le meme objet. Après faut faire gaffe à la synchro...
Vla ma classe MyInt:
Code :
- public class MyInt {
- private static MyInt INSTANCE = null;
- private int r;
- private int i;
- private MyInt (int r, int i) {
- this.r = r;
- this.i = i;
- }
- public synchronized static MyInt getInstance() {
- if (INSTANCE == null)
- INSTANCE = new MyInt(18,95);
- return INSTANCE;
- }
- public String jemanipulemonobjet() {
- return new String("Mon objet est bien manipulé" );
- }
- // ... getter et setter qui vont bien
- }
|
On peut aussi utiliser la fonction getInstance de manière à gérer un pool d'objet pour pouvoir avoir un peu plus que 1 seul objet.
Depuis Php, je peux accéder de la même façon à mon objet crée depuis Java:
Code :
- // Connexion au socket
- require_once("http://localhost:8095/JavaBridge/java/Java.inc" );
- $myClass = new ("monPack.Main" );
- echo $myClass->objet->jemanipulemonobjet();
- echo $myClass->objet->getR();
|
Bon voila, en tout cas, ca a résolu mon problème. Merci qd meme de m'avoir rappeler que je pouvais faire tout betement un passage de paramètre.
A bientot