Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Java-Php bridge funzt nicht..Tip?

Empfohlene Antworten

Hi,

gleich am Anfang ne Entschuldigung, wenns chaotisch wird...ich hab noch nie auch nur n Apache Server o.ä. aufgesetzt oder PHP installiert, ich bin da *etwas* planlos und alle KOnfigurationsskripte sagen mri gar nix....und Linuxspezi bin ich auch nicht grade...Danke für jede Hilfe! Wenn ich wo ungenau bin, und mir sagen könnt, welches die richtige Frage zu meinem Problem ist, komm ich evtl. auch schon weiter.

Ich soll die eine Php-Java-Bridge http://php-java-bridge.sourceforge.net/ unter Debian zum laufen bringen. Plan ist, daß Java Objekte unter PHP ansprechbar sind. Auf dem System sind Apache und Php installiert.

Ich hab die Bridge jetzt mit Hilfe des Perl Skripts installiert, Tomcat läuft auch. extension=java.so hab ich in der php.ini eingefügt (Irgendwo stand, mamn solle die Datei auch ins Verzeichnis extension_dir kopieren, aber ich finde weder eine Datei java.so, noch ein Verzeichnis extension_dir) .Html Seite mit Php wird auch geladen, aber sobald Javacode drin ist, krieg ich n Fehler, als wenn der Code falsch wär (z.B. unexpected { in line...). Da die Beispiele (z.B. array.php) von der Bridge mitgeliefert wurden, geh ich aber davon aus, daß die richtig sind. ;)

Hat jemand Erfahrung damit oder n Tip? Noch mal sorry, wenn die Fragen unklar gestellt sind.

Thx,

Mara

aber sobald Javacode drin ist, krieg ich n Fehler, als wenn der Code falsch wär (z.B. unexpected { in line...).
Und wieso postest du dann nicht einfach mal den genauen Wortlaut der Fehlermeldung?!

Noch mal sorry, wenn die Fragen unklar gestellt sind.
Das wird dann dein Problem werden... Du willst schließlich Hilfe haben, und wenn die Informationen, die von dir kommen, nicht aussagekräftig sind wird uns das eher wenig ausmachen. Du aber verpasst dadurch vielleicht wertvolle Tipps und eventuell sogar die Lösung für dein Problem.

Wie hast du denn dein PHP installiert? Mittels Paketmanagement oder selber kompiliert?

Normalerweise kannst du beim kompilieren respektive in der Konfiguration angeben, ob java benutzt werden soll, oder nicht.

Ausserdem musst du auf dem Server JavaVM installiert haben und der Interpreter sollte auch im Pfad liegen, so dass PHP die VM auch findet.

  • 4 Wochen später...

Hi noch Mal, sorry fürs nicht wieder reinschauen. Ich habs letztlich geschafft (und das ganze auch noch mal auf nem andren Debian beim Kollegen so wie unten zum laufen bekommen. Falls es jemanden interessiert- hier ist meine Memo ;) Ich hoffe, es hilft jemanden weiter. Ich hoffe das reinkopieren macht nicht zu viel Chaos aus dem Text....

Inzwischen hab ich andre Probleme mit dem Projekt, aber immerhin läuft die Bridge..

Zu den Beispielen sei gesagt, dass ich mir immer noch nciht ganz sicher bin, was man jetzt wann per "require" einfügen muß, ob "jar" oder php_Java.php oder oder...da frickel ich grade an nem komplexeren Beispiel.

Lieber Gruß,

Mara

Wie installiere ich die Java-Php-Bridge?

Links:

about/installation: http://php-java-bridge.sourceforge.net/

download: http://sourceforge.net/project/showfiles.php?group_id=117793&package_id=128273&release_id=432473

Einige Konfigurationsbeispiele der php.ini: http://de.php.net/java

Vorraussetzungen (für diese Anleitung):

Apache, Php 4.3, Source der Bridge

Make sure you have java version 1.4.2 or higher, gcc 3.2 or higher, apache 1.3 or higher, GNU autoconf 2.57 or higher, GNU libtool 1.4.3 or higher, GNU automake 1.6.3 or higher, GNU make and php 4.3.4 or higher installed. You can check the version numbers with the commands java -version, gcc --version, apachectl -version, libtool --version, automake --version, make null --version, autoconf --version and php-config.

--------------------------------------------------------------------------------------------------------------------------

1. Installation

--------------------------------------------------------------------------------------------------------------------------

Download file entpacken. In das entpackte Verzeichnis gehen und kompilieren/installieren mit Befehl

[Pfad]phpize && ./configure --with-java=[JAVA_HOME] && make

z.B. phpize &&./configure --with-java=/opt/jdk1.5 && make && sh install.sh

(Pfadangaben korrigieren/hinzufügen)

1a. Fehler, u.a. mit Bezug auf neuere Versionen von automake, libtool, autoconf, obwohl die empfohlenen Versionen ok sind?

-php4-dev herunterladen und installieren: apt-get install php4-dev

-Bei automake gibt es auch trotz Version 1.9 Probleme, hier muß die instabile Version runtergeladen werden:

/etc/apt -> sources.list dort einfügen:

deb http://ftp.de.debian.org/debian/ testing main

deb-src http://ftp.de.debian.org/debian/ testing main

..und automake neu installieren.

------------------------------------------------------------------------------------------------------------------------

2. Modul aktivieren

------------------------------------------------------------------------------------------------------------------------

phpinfo(); über eine php Seite aufrufen und die Pfade von php.ini und extension_dir herausfinden.

java.so und JavaBridge.jar aus dem javabridge Ordner in das extension_dir kopieren.

In php.ini mit richtigen Pfaden für java und java_home einfügen:

extension = java.so

[java]

java.java_home = /opt/jdk1.5

java.java = /opt/jdk1.5/bin/java

java.log_file = /var/log/php-java-bridge.log

java.log_level = 2

Apache neu starten mit apachectl restart .

Soll die Bridge nicht im Standalone Modus betrieben werden, so finden sich weitere KOnfiurationshinweise unter link 1 und in "Readme" und "Install".

------------------------------------------------------------------------------------------------------------------------

3. Test

------------------------------------------------------------------------------------------------------------------------

test.php aus documentation Ordner (/usr/share/doc/php-java-bridge-[version]) kopieren in /var/www und testen:

http://yourHost/test.php

Mit <?php phpinfo();?> ist unter "Java" ersichtlich, ob Java und die bridge laufen.

Ein einfaches Beispiel:

//Dateiname: Vectortest.zugegeben, macht nicht viel, aber wenn kein Fehler beim Aufruf kommt, klappt der Zuriff auf die Klasse Vector

<?php

require_once('php_Java.php');

$v = new Java("java.util.Vector");

$v->add($buf=new Java("java.lang.StringBuffer"));

$buf->append("100");

$temp = $v->elementAt(0);

$string = $temp->toString();

echo $string;

?>

oder noch kürzer:

//Dateiname: datum.php

<?php

require_once('php_Java.php');

$n = new javaclass("java.util.Date");

echo $n->toString();

?>

Weitere Beispiele und Hinweise zur Syntax stehen unter link 1 oben.

3.a Eigene Klassen

Um eigene Javaklassen einbinden zu können gibt es den Befehl

java -jar JavaBridge.jar --convert /usr/share/pear klassenname.jar ,

der die angegebene Klasse in eine php-KLasse konvertiert und sie in /usr/share/pear/ schreibt. Dort findet man dann eine php_Java.php, die man in Skripte über require_once("klassenname") einbinden kann.

Beispiel: Javaklasse FileOutput legt eine leere Datei an einem bestimmten Pfad an und gibt einen String zurück mit "Datei angelegt unter ...".

//Dateiname: file.php

<?php

require_once('php_Java.php');

java_require_once('/usr/share/pear/fileoutput/fileoutput.jar');

$fo = new Java("de.tng.JSRTest.FileOutput"); //neues Objekt der Klasse FileOutput

$msg = $fo->touchFile(); //Methode touchFile, die eine leere Datei enlegt und einen String zurück gibt

echo $msg;

?>

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Konto

Navigation

Suchen

Suchen

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.