Mit PHP ein Objekt aus einer Class-Datei ziehen

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

  • Mit PHP ein Objekt aus einer Class-Datei ziehen

    Hallo,

    ich habe wieder ein Problem in Bezug auf PHP (Version 4.4.7) und Java, dass ich gerne lösen möchte. Erstmal die Frage: Ist es überhaupt möglich, aus Class-Dateien PHP-Objekte zu ziehen?
    Wenn ja: wie mache ich das?

    Ich habe in der Klasse Test.class nichts anderes als einen leerstehenden Constructor und eine ebenfalls leerstehende Main-Methode (Es geht ja nur darum, dass erstmals nur ein Objekt einer Klasse gezogen wird)



    public class Test {

    public Test() {
    }

    public static void main(String[] args) {
    }



    Das dazugehörige PHP-File openclass.php enthält folgenden Code:



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


    Beide Dateien liegen im selben Verzeichnis C:\xampp\htdocs\testzweck


    Beim Aufrufen der PHP-Datei bekomme ich folgenden Fehler:

    Warning: java.lang.ClassNotFoundException: Test in C:\xampp\htdocs\testzweck\openclass.php on line 2

    An der VM kann es nicht liegen, da manch andere Java-Zugriffe von PHP aus funktionieren. Also ist davon auszugehen, dass die Klasse
    Test.class nicht gefunden werden kann.
    Das Verzeichnis C:\xampp\htdocs\testzweck,
    wo sowohl Test.class als auch openclass.php drinnen sind, sind sowohl im Classpath als auch im Path eingetragen.
    Dennoch die Fehlermeldung.

    Ich habe auch versucht, beim PHP-Aufruf ein ".class" dahinterzuhängen, also so:



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



    Das löst das Problem jedoch immernoch nicht und ich finde einfach keine Literatur, wo sowas erklärt wird. Weiß jemand von euch weiter?

  • #2
    Hast du die Klasse mal direkt in Java ausgeführt, also ohne PHP? Funzt sie dann? Oder beschwert sich Java dann ebenfalls?
    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
      Ergänze deine Main Methode noch um eine Ausgabe und teste direkt in Java
      Code:
      public class Test {
        public static void main(String[] args){
          System.out.println( "Hallo Welt" );
        }
      }
      kompilieren nicht vergessen und testen

      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


      • #4
        Danke für die schnelle Antwort. Das Problem besteht leider immernoch.

        Ich habe deinen Code eingebaut, Java selbst macht damit keine Probleme und gibt bei der Ausführung schön Hallo Welt aus (Compilieren und Ausführung geschah von der Kommandozeile aus, also mit javac und java, es wurde keine Entwicklungsumgebung a la Eclipse verwendet)
        PHP jedoch bringt immernoch die gleiche Fehlermeldung.

        Kommentar


        • #5
          Funzt denn das folgende?
          PHP-Code:
          $system = new Java('java.lang.System.out');
          echo 
          $system->println('Hallo Welt'); 
          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


          • #6
            Original geschrieben von jahlives
            Funzt denn das folgende?
            PHP-Code:
            $system = new Java('java.lang.System.out');
            echo 
            $system->println('Hallo Welt'); 

            Funzt auch nicht. Stattdessen kommt die Fehlermeldung




            Warning: java.lang.ClassNotFoundException: java.lang.System.out in C:\xampp\htdocs\testzweck\openclass2.php on line 2

            Fatal error: Call to a member function on a non-object in C:\xampp\htdocs\testzweck\openclass2.php on line 3


            Ich verstehe aber nicht, warum des nicht funzt, denn Codes wie folgender funktionieren:

            <?php
            $system = new Java('java.lang.System');
            echo 'Java version=' . $system->getProperty('java.version');
            ?>
            Zuletzt geändert von Phobos; 30.10.2007, 15:25.

            Kommentar


            • #7
              Habe ich irgendwas Falsches geschrieben?

              Kommentar

              Lädt...
              X