Mit PHP auf Java-Klassen zugreifen

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

  • Mit PHP auf Java-Klassen zugreifen

    Hallo,

    ich versuche schon eine weile, mit PHP4 auf Java-Klassen zuzugreifen.
    Ich benutze dabei XAMPP ( http://www.apachefriends.org/de/xampp.html ) als Webserver und PHP Version 4.4.7,
    als Java-Version die J2SDK_1_4_2_16.
    Sobald ich ein PHP-Script laufen lassen möchte, wo auf eine Java-Klasse zugegriffen wird, kommt folgende Fehlermeldung:



    Fatal error: Cannot instantiate non-existent class: java in C:\xampp\htdocs\testzweck\test1.php on line 2



    Der Sourcecode hierzu sieht noch so aus.



    <?php
    $system = new Java('java.lang.System');
    ?>



    Ich habe es auch mit folgendem Code versucht (betreffende Klasse "Test.class" befindet sich im selben Verzeichnis)


    <?php
    $system = new Java('Test');
    ?>




    Dennoch kommt die gleiche Fehlermeldung. Selbst die PHP.ini ist folgendermaßen (in Bezug auf Java) konfiguiert:


    [Java]
    java.class.path = .\php_java.jar
    java.home = c:\j2sdk
    java.library = c:\j2sdk\jre\bin\server\jvm.dll
    java.library.path = .\


    Langsam weiß ich nichtmehr weiter. Weiß jemand von euch, an was das liegen könnte? Danke schonmal im Vorraus
    Zuletzt geändert von Phobos; 24.10.2007, 11:36.

  • #2
    als Java-Version die J2SDK_1_4_2_16.
    Brauchst du nicht eher die JRE. Weil mit der SDK wirst du auch lokal auf der Kiste kein Java zum laufen bringen
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      Original geschrieben von jahlives
      Brauchst du nicht eher die JRE. Weil mit der SDK wirst du auch lokal auf der Kiste kein Java zum laufen bringen
      Das J2SDK hat doch ein JRE-Unterverzeichnis. Läuft damit kein Java? (Dachte eher gegenteiligieres)
      Ansonsten habe ich noch die jre1.6.0_03 auf der Maschine installiert.
      Ursprünglich habe ich die Einträge der PHP.ini dorthin verwiesen. Hatte jedoch dort vorhin genannten Fehler. Dann installierte ich das SDK, dachte, damit sollte es gehen. Ging jedoch auch nicht.

      Kommentar


      • #4
        Hast du schon versucht, die JAVA-"Sachen" in den PATH einzutragen? Meist läuft es besser wenn sich der Pfad zum Java Verz in PATH befindet.
        Note: In order to enable this module on a Windows environment with PHP <= 4.0.6, you must make jvm.dll available to your systems PATH. No additional DLL is needed for PHP versions > 4.0.6.
        Und welche PHP Version hast du genau?
        Btw: Den Java Support für PHP in der php.ini hast du schon aktiviert?

        Gruss

        tobi
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          du bist leider nicht der erster, der damit probleme bekommen hat.
          ich würde empfehlen PHP/Java-Bridge zu benutzen.
          http://php-java-bridge.sourceforge.net/pjb/
          Slava
          bituniverse.com

          Kommentar


          • #6
            Danke für die Ratschläge, aber es geht immer noch nicht.



            Original geschrieben von jahlives
            Hast du schon versucht, die JAVA-"Sachen" in den PATH einzutragen? Meist läuft es besser wenn sich der Pfad zum Java Verz in PATH befindet.

            Ich habe im Path nachgesehen und zu Java-Verzeichnissen gepatht

            c:\j2sdk;c:\j2sdk\bin;c:\j2sdk\jre\bin\server\

            Läuft immernoch nicht (oder hab ich ein wichtiges Verzeichnis vergessen?)


            Original geschrieben von jahlives

            Und welche PHP Version hast du genau?
            Btw: Den Java Support für PHP in der php.ini hast du schon aktiviert?

            Gruss

            tobi
            PHP Version 4.4.7

            Einträge der PHP.ini:


            [Java]
            java.class.path = .\php_java.jar
            java.home = c:\j2sdk
            java.library = c:\j2sdk\jre\bin\server\jvm.dll
            java.library.path = .\


            Habe ich was Wichtiges vergessen?

            Original geschrieben von Slava
            du bist leider nicht der erster, der damit probleme bekommen hat.
            ich würde empfehlen PHP/Java-Bridge zu benutzen.
            http://php-java-bridge.sourceforge.net/pjb/
            Danke für den Tip, damit habe ich es auch schon versucht, mit dem gleichen Ergebnis.
            Vielleicht hat der Apache-Server nach wie vor auf das falsche PHP zugegriffen.
            Ich hatte das mit httpd.conf eingetragen, mit dem Befehl:


            ScriptAlias /php/ "C:\php-java-bridge-3.2.1_j2ee"
            Action application/x-httpd-php "/php/php.exe"


            Aber das half auch nicht. Gibt es da irgendwo noch einen Hebel, den man setzen muss? Muss ich da noch irgendwas starten oder irgend einen Kommando in der Kommandozeile ausführen, um die Bridge zu starten?

            Kommentar


            • #7
              Läuft immernoch nicht (oder hab ich ein wichtiges Verzeichnis vergessen?)
              Server nach der Änderung in PATH neugestartet?
              Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

              [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
              Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

              Kommentar


              • #8
                Original geschrieben von jahlives
                Server nach der Änderung in PATH neugestartet?
                Server nach der Änderung neu gestartet. Leider mit demselben Ergebnis

                Kommentar


                • #9
                  was sagt phpinfo() -

                  hast du die richtige php.ini genommen die im apache verzeichnis liegt?
                  "Nicht jeder Mensch kann und soll Programmieren[...]".

                  Kommentar


                  • #10
                    Habe ich was Wichtiges vergessen?
                    Vielleicht haste meine Frage nicht genau genug gelesen. Hast du den JAVA Support in der php.ini aktiviert?
                    Code:
                    extension=php_java.dll
                    Gruss

                    tobi
                    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                    Kommentar


                    • #11
                      Original geschrieben von xkl1986
                      was sagt phpinfo() -

                      hast du die richtige php.ini genommen die im apache verzeichnis liegt?

                      Jipp

                      Original geschrieben von jahlives
                      Vielleicht haste meine Frage nicht genau genug gelesen. Hast du den JAVA Support in der php.ini aktiviert?
                      Code:
                      extension=php_java.dll
                      Gruss

                      tobi
                      Achso. Ja, die ist aktiviert.


                      Ich denk, vielleicht liegt der Fehler auch daran, dass ich XAMPP verwende und nicht den original Apache Server. Ich bin grad dabei, den zu installieren, in Hoffnung, dass es dann klappen wird ...

                      Kommentar


                      • #12
                        ... dass ich XAMPP verwende und nicht den original Apache Server
                        Wo siehst du den Unterschied?
                        Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                        Kommentar


                        • #13
                          Original geschrieben von tontechniker
                          Wo siehst du den Unterschied?
                          in dem, dass original Apache von XAMP vorkonfiguriert ist.
                          Ich vermute, dass nach der Neuinstallation von Apache nicht nur Java Austerkontrolle läuft.
                          Danach kann man wieder XAMP installieren und JavaBridge nachholen.
                          Slava
                          bituniverse.com

                          Kommentar


                          • #14
                            Ich weiß zwar nicht wie du die Apache "neuinstallieren" willst, aber ich bin mal gespannt was dabei rauskommt. Eine neuere Version könnte vielleicht helfen (wenn man nicht den neusten xampp installiert hat). Ich glaube allerdings nicht das es am Apache liegt sondern eher an einer Fehlkonfiguration.
                            Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                            Kommentar


                            • #15
                              Danke für die guten Ratschläge

                              Habe das mit dem Apache HTTP Server (von www.apache.org) nicht zum laufen gebracht und habe wieder das XAMPP installiert. Beim genauerem Betrachten der PHP-Konfiguration habe ich gemerkt, dass ich doch die falsche PHP.ini editiert hatte (gibt in XAMPP so viele) ...

                              naja, jetzt bekomme ich die Fehlermeldung


                              Fatal error: java() [<a href='function.java'>function.java</a>]: Unable to load Java Library jvm.dll, error: Das angegebene Modul wurde nicht gefunden. in C:\xampp\htdocs\testzweck\test.php on line 2



                              Meine (auf Java bezogene php.ini) sieht so aus (und die Pfade sind ohne Tippfehler)

                              [Java]
                              java.class.path = C:\xampp\apache\bin\php_java.jar
                              java.home = C:\Programme\Java\jdk1.6.0_01\jre\bin
                              java.library = C:\Programme\Java\jdk1.6.0_01\jre\bin\server\jvm.dll
                              java.library.path = C:\xampp\php\extensions


                              Dennoch findet er die JVM.dll nicht ... komisch *weiterherumexperimentier*

                              Kommentar

                              Lädt...
                              X