Java-Programm auf Linux-Server ausführen: wie?



  • Hallo,
    ich habe ein Java-Programm auf einem Desktop PC (Windows XP SP3) entwickelt, das PDF-Dateien generiert. Nun möchte ich es auf einem Linux-Server (Ubuntu 9.10 Server Edition) laufen lassen.

    Es soll folgendermaßen aussehen: Falls ein Benutzer meiner Internetseite (geschrieben in HTML & PHP) einen bestimmten Knopf drückt, ruft PHP mein Java-Programm auf, dass daraufhin "im Hintergrund" ausgeführt wird.

    Geht das so einfach? Oder brauche ich dafür unbedingt einen Application Server wie z.B. JBoss / GlassFish bzw. einen Servlet Container wie z.B. Tomcat?

    Danke für Eure Hilfe!



  • Nein, braucht man nicht.

    Es gibt verschiedene Lösungen. Du könntest dein Programm mittels Kommandozeile direkt anstoßen - oder die Anwendung als Dienst dauerhaft laufen lassen und Dateien, welche die jeweilig geforderte Ausgabe beschreiben, automatisch in eine Queue einreihen, sobald sie in ein bestimmtes Verzeichnis flattern.



  • Hallo marco.b,
    danke für Deine Antwort.

    Wäre es auch möglich, dass meine Internetseite (HTML/PHP) über PHP das Programm aufruft, welches daraufhin im Hintergrund läuft und abschließend einen Wert an PHP zurückliefert (z.B. über System.out.println())?

    Ich glaube dazu müsste ich nur PHP mit den entsprechenden Rechten ausstatten und die Java Runtime Environment auf dem Server installieren. Ist das richtig?



  • Die PHP Funktion exec müsste den Wert zurückgeben, den das aufgerufene Programm zurückgibt. Du kannst also das return value der Java-Anwendung abprüfen. Selbstverständlich benötigst du auf deiner Serverkiste die Java Runtime.

    Beachte, dass das direkte Aufrufen der Java-Anwendung bei gleichzeitiger Nutzung durch mehrere Benutzer den Server in die Knie zwingen kann. Optimaler ist sicherlich eine Art Queue, welche durch eine Programminstanz und vielleicht einem Threadpool, verwaltet wird.



  • Danke, du hast mir sehr geholfen 🙂


Log in to reply