Torsten: Was ist am besten?

Hallo Leute,

zu einem bestehenden Jar-File soll ich eine Oberfläche für den Browser starten. Das Jar-File beinhaltet ein kleines Programm welches über Textein und -ausgabe mit dem Benutzer kommuniziert. Nun soll ich für dieses Programm eine Oberfläche basteln. Was ist dem Programm bis jetzt z.B. über Texteingaben wie j/n gemacht wurden ist soll jetzt wenn möglich über (komm grad nicht auf den Namen) die Inputfelder die man abhaken kann gemacht werden.

Wie ist sowas am besten möglich? Ich dachte da an ein CGI-Script, welches ein sh-script aufruft welches wiederum das jar-file mit übergabeparametern startet.
Oder gibt es da bessere Techniken? Und wie kann ich die Interkommunikation mitten im Programm lösen?

Ich hoffe ich konnte mich halbwegs verständlich ausdrücken.

Grüße
Torsten

  1. Die Oberfläche soll ich natürlich nicht starten sondern programmieren.

  2. Moin!

    Wie ist sowas am besten möglich? Ich dachte da an ein CGI-Script, welches ein sh-script aufruft welches wiederum das jar-file mit übergabeparametern startet.

    Quatsch. Du kannst CGI-Programme ausführen? Du kannst in die Konfiguration des Webservers eingreifen?

    Dann ist Dein bisheriges Java-Programm doch bestens als CGI-Programm geeignet, nur dass es eben HTML und mindestens den Header für den Content-Type ausgeben muss. Die Vorgehensweise ist ähnlich wie in Perl.

    Natürlich kannst Du alternativ auch noch ein CGI-Script oder PHP außen herum bauen, welches Das jar-File mit den Parametern startet. Aber ob das Sinn macht?

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix®

    --
    Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.
    1. Hallo,

      leider kann ich nicht in die Konfiguration des Web-Servers eingreifen. CGI Scripte kann ich jedoch ausführen.

      Geht das ganze auch ohne das ich in die Konfiguration des Servers eingreifen kann?

      Und wie geht das ganze? Genauso wie in Perl?

      Kannst du mir da ein gutes Java/CGI Tutorial empfehlen?

      Grüße Torsten

      1. Hallo Torsten,

        Kannst du mir da ein gutes Java/CGI Tutorial empfehlen?

        Ich vermute, dass es sowas nicht gibt. Java ist dafür denkbar ungeeignet, da bei jedem Zugriff die VM gestartet werden muss.
        Natürlich kannst Du in Java CGI-Programme schreiben oder das java-Programm aus einem PHP-Script o.ä. heraus starten, das ist aber nur dann eine Lösung, wenn Du sehr wenig Zugriffe auf eine Anwendung hast.
        Java auf dem Webserver setzt man idR in Form von Serlets ein. Dabei läuft eine VM-Instanz die ganze Zeit für alle Servlets, wodurch das ganze erheblich performanter wird.
        Wenn Du Servlets nicht verwenden kannst (was vermutlich der Fall ist), kannst Du Deine Javaanwendung zu einer Serveranwendung umbauen, so dass die nur einmal startest und von Deiner CGI-Anwendung aus Anfragen an diese Serveranwendung stellst.
        Das ist natürlich etwas Aufwändiger umzusetzen.

        Grüße

        Daniel

        1. Nein, Servlets kann ich nicht verwenden.

          Zugriffe auf die Anwendung würden nur beim Start (Übergabe der Parameter), so etwa in der Mitte (Bestätigen von mehreren Zeilen oder ähnliches) und am Ende der Anwendung (j/n) erfolgen.

          Deswegen dachte ich ja auch daran, das mit einem CGI-Script zu realilieren. Wie ist eine solche Kommunikation eigentlich grundlegend zu relalisieren, also das ich auch dem cgi-script die jar-datei starten kann und auf ausgaben dieser jar-datei reagieren kann?

          Grüße
          Torsten

          1. Moin!

            Deswegen dachte ich ja auch daran, das mit einem CGI-Script zu realilieren. Wie ist eine solche Kommunikation eigentlich grundlegend zu relalisieren, also das ich auch dem cgi-script die jar-datei starten kann und auf ausgaben dieser jar-datei reagieren kann?

            Ja. Sowohl PHP als auch Perl haben sowas wie den System-Befehl mit welchem sich Konsolenprogramme starten lassen. Deren Rückgaben (Das, was sonst auf die Konsole geschrieben wird) kann ausgewertet werden.

            Fraglich ist, ob das effektiv ist. Hast Du ein aufwendiges Programm und wenig Zugriffe kann das ein Weg sein. In aller Regel und besonders bei vielen Zugriffen ist anderes eine deiutlich bessere Löung, z.B. das Umstricken nach Perl oder PHP. In Extremfällen wie diesem Forum sind wieder andere Lösungen gefragt, dann kommst Du aber auch nicht darum herum den Server selbst zu administrieren.

            Um Dir zu raten brauchts mehr Daten...

            MFFG (Mit freundlich- friedfertigem Grinsen)

            fastix®

            --
            Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.
            1. Ok, ich beschreibe es mal so gut es geht.

              Das Programm (jar-file) wie es jetzt ist wird mit 3 Übergabeparametern gestartet.

              Jetzt kommt auch schon die Arbeit des Programms. Bei den Übergabedaten handelt es sich um einen Server und Pfade des Servers. Von diesem Server holt sich das Prog jetzt verschiedene Dateien und wertet diese aus. Ja nach der Auswertung muß installiert oder deinstalliert werden. Die De-Installationen werden bis jetzt wie gesagt über die Console mit (j/n) zeilenweise bestätigt. Nun buat das Programm eine Unit zusammen und fragt nur noch mal ab ob es das auch wirklich machen soll (j/n).

              Das ist auch schon die ganze Kommunikation mit dem User. Den Rest erledigt das Jar-File selbst. Und deswegen müßte ja eigentlich ein perl cgi-script ausreichen, dachte ich mir, um halt diesem jar-file eine Browser.Oberfläche zu verschaffen um die Bestätigungen der De-Installationen z.B. übersichtlich gestalten zu können über z.b. Input-Felder. (Wird so gewünscht).

              Leider finde ich im netz nicht sehr viel dazu. Wo kann ich mich denn über solche Auswertungen der Konsolenrückgaben informieren?

              Ich hoffe meine Beschreibung hilft dir weiter...

              Grüße
              Torsten

              1. Moin!

                Ok. Das Programm wird nicht tausende Male abgerufen.
                Meine Idee wäre also PHP und den system zu verwenden.

                http://de3.php.net/manual/de/function.system.php

                PHP ist eine recht simple Skriptsprache, leicht zu lernen und so weiter. Wahrscheinlich Ideal für Deine Zwecke. Allerdings wirst Du Deine Java-Anwendung doch umschreiben und auf mehrere Dateien müssen.

                Insofern wäre zu überlegen ob Du nicht gleich alles in PHP machen willst. Es kann ziemlich viel.

                MFFG (Mit freundlich- friedfertigem Grinsen)

                fastix®

                --
                Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.
                1. An sich eine gute Idee, nur bin ich jetzt leider schon zu Hause und kann das erst morgen angehen.

                  Ich weiss das auf dem System Perl installiert ist. Jedoch weiss ich nicht was für Voraussetzungen gegeben sein müssen damit deine Idee mit dem php system läuft? Was muß dafür auf dem Server installiert sein bzw. muß installiert werden? Oder läuft das dann wie ein normales Perl CGI-Script?

                  Grüße
                  Torsten

                  1. Moin!

                    Ich weiss das auf dem System Perl installiert ist. Jedoch weiss ich nicht was für Voraussetzungen gegeben sein müssen damit deine Idee mit dem php system läuft? Was muß dafür auf dem Server installiert sein bzw. muß installiert werden? Oder läuft das dann wie ein normales Perl CGI-Script?

                    Informiere Dich, was auf dem Server geht und was nicht. Sowohl zu PHP als auch zu Perl findest Du in Selfhtml einführende Abschnitte nebts weiterverweisenden Links und zudem reichlich brauchbare Bücher im Handel.

                    PHP und Perl sind für die Lösung Deines Problemes gleich brauchbar. Ich schätze aber den Lernaufwand bei PHP als geringer ein. Installiert ist es oft auch, allein deshalb weil Perl und PHP _oft_ nebeninander installiert werden.

                    Um herauszufinden, was installiert ist gibt es zwei Wege:

                    Schreibe zwei Dateien:

                    test.php:
                    --
                    <h1><? echo "Php tut es."; ?></h1>
                    --
                    Die test.php muss nur lesbar sein. (chmod 644 test.php)

                    test.pl:
                    --
                    #! /usr/bin/perl
                    print "Content-type: text/html\n\n";
                    print "<h1>Perl tut es.</h1>";
                    --
                    Die test.pl muss ausführbar sein (chmod 755 test.pl).

                    Das Ergebnis sollte im Erfolgsfall nach Abruf im Browser jeweils aus "<h1>[PHP|Perl] tut es.<h1>" (Quelltext-Ansicht) bestehen.

                    Der zweite Weg ist frag den Admin oder Kundendienst.

                    So weiter:

                    Das, was Du vor hast erscheint mir ein klein wenig problematisch: Was soll denn ein Update erfahren? Software auf dem Server? Oh.Oh! Dann brauchst Du "womöglich" noch Root- oder Administrator- Rechte. Ich schätze da ist noch ein gutes Buch über das verwendete OS fällig.

                    MFFG (Mit freundlich- friedfertigem Grinsen)

                    fastix®

                    --
                    Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.
                    1. Gut, danke, werde mich da morgen mal informieren.

                      Das, was Du vor hast erscheint mir ein klein wenig problematisch: Was soll denn ein Update erfahren? Software auf dem Server? Oh.Oh! Dann brauchst Du "womöglich" noch Root- oder Administrator- Rechte. Ich schätze da ist noch ein gutes Buch über das verwendete OS fällig.

                      Die Informationen von dem Server bilden für das Programm die Grundlage zum erstellen bestimmter Pakete. Es hat nichts mit Updates auf dem Server direkt zu tun, wenn du das meinst.
                      Das Programm an sich läuft auch sehr gut, nur ist es halt wie überall, eine grafische Oberfläche wird irgendwann nachträglich gewünscht und das am besten noch im Browser.

                      Grüße
                      Torsten