[PHP5] PHP-Java-Bridge

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #16
    Hallo?

    Ich freue mich, wenn in diesem Thraed Grundsatzdiskussionen geführt werden können, weiß viellecht jemand trotzdem eine Lösung für meine Probleme mit der Bridge? Das heißt, mit dem Port8080 usw...

    Würde mich freuen!

    Gruß
    Anna

    Kommentar


    • #17
      Hallo

      ich habe das selbe Problem wie Anna. Habe inzwischen verschiedenen Versionen der PHP/Java-Bridge des sourceforge-Projekts herunter gelanden und versucht zu installieren. Zum Beispiel Version 3.2.1 (wenn ich das richtig verstanden habe, ist dies die letzte Version mit kompilierter Windows PHP-Extension), Version 4.0.2 (weil Hopka die verwendet hat) und Version 4.0.8 (weil es die neueste ist).

      OS: Win XP
      XAMPP (Basispaket) version 1.6.1 mit
      + Apache 2.2.4
      + PHP 5.2.1 + PHP 4.4.6 + PEAR
      JRE 1.6.0

      Habe schon beim Starten von PHP die Warnung:
      PHP Warning: PHP Startup: java: Unable to initialize module\nModule compiled with module API=20050922, debug=0, thread-safety=1\nPHP compiled with module API=20060613, debug=0, thread-safety=1\nThese options need to match\n in Unknown on line 0

      Und dann auch das unvermeidliche
      PHP Fatal error: Call to undefined function java_require()

      Über Hilfe und Tipps würde ich mich wirklich sehr freuen.

      Vielen Dank!

      Kommentar


      • #18
        Hallo Hopka,


        Was du falsch machst: du verwendest php_java.dll
        Also lösche die Datei wieder und mache die Änderungen an deiner php.ini rückgängig.

        Wie ich es gemacht habe:

        Windows XP, Apache 2.0.58, PHP 5.2.0, JDK 1.5.0.07, PHP-Java-Bridge 4.0.2

        Hab mir die 4.0.2 Binary der PHP-Java-Bridge runtergeladen und entpackt. Dann mit einer Shell (cmd.exe) in den Ordner gewechselt und java -jar JavaBridge.war eingegeben. Dadurch entsteht eine Datei RESULT.html, wo die Ausgabe von phpinfo gefolgt von einigen Java-Infos steht. Dann habe ich im Unterordner ext die Datei JavaBridge.jar durch Doppelklick gestartet, SERVLET_LOCAL:8080 ausgewählt (war schon automatisch ausgewählt) und OK geklickt.
        Als nächstes habe ich folgendes PHP-Script im Browser aufgerufen:
        PHP-Code:
        <?php
            
        require_once("http://localhost:8080/JavaBridge/java/Java.inc");
            
        $s = new Java("java.lang.System");
            
        var_dump($s->nanoTime());
        ?>
        Das, was er da per require_once lädt, wird durch die JavaBridge.jar bereitgestellt. Vermutlich musst du vorher in der php.ini noch allow_url_include ON setzen, weil sonst das require_once nicht erlaubt ist.

        Die php_java.dll aus PECL ist (vermutlich - Dokumentation ist hier leider Mangelware) teil einer völlig anderen PHP-Java Bridge und sollte daher nicht verwendet werden. Die PHP-Java Bridge von Sourceforge gibt es zwar auch als PHP-Extension, aber soweit ich weiß nicht vorkompiliert für Windows.
        Wie kann ich mit dem einbinden von Java.inc meine eigene Klasse instantiieren und methoden aufrufen??

        Mit freundlichen Grüßen...

        Willy

        Kommentar


        • #19
          Ich vermute mal indem du statt "java.lang.System" den Namen deiner eigenen Klasse einträgst. Vorher solltest du allerdings den classpath entsprechend anpassen.
          hopka.net!

          Kommentar


          • #20
            Das weiss ich auch nicht...

            Ich habe schon meine eigene klasse da reingeschriben aber es läuft einfach nicht!!!

            Finde meine klasse nicht ClassNotFoundExcpetion..

            Wie ich meine klasse bekannt machen muss weiss ich leider nicht!

            mfg

            William

            Kommentar


            • #21
              Original geschrieben von Hopka
              Vorher solltest du allerdings den classpath entsprechend anpassen.
              hopka.net!

              Kommentar


              • #22
                Ich habe die jarFile in dem meine klasse sich befinden in der classpath hinzugefügt. es funktioniert trotzdem nicht!

                Das Programm läuft über Java.inc und versuch dann von dort aus meine Klasse zu finden... was aber nicht funk. ClassNotFoundExcpetion.

                Was mich sehr wundert ist, dass die Java-Standard-Klassen werden gefunden, eigene Klassen aber nicht!

                hat jemand es schon mit einer eigenen Klasse ausprobiert??

                Mfg

                William

                Kommentar

                Lädt...
                X