Announcement

Collapse
No announcement yet.

JAR-Dateien

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • JAR-Dateien

    Ich habe bereits Jar-Dateien für Java-Applets erstellt, die über den HTML-Tag
    <PRE>
    &lt;applet code="Klasse.class" archive="archivname.jar"&gt;&lt;/applet&gt;
    </PRE>
    auch funktionieren. Jetzt habe ich eine Java-Applikation erstellt, und möchte diese nun weitergeben, so dass der Anwender die Anwendung per Doppelklick auf das Jar-Archiv (und eben nicht per "java Anwendungsname") starten kann. Weiß jemand, wie dass geht?
    <PRE>thx, Sebastian</PRE>

  • #2
    Hallo Sebastian,

    die manifest.mf-Datei im Jar-Archiv muss auf die Klasse zeigen, welche die Main-Methode enthaelt.

    Ein Beispiel: <BR>

    Zuerst erzeugen wir uns eine Klasse, welche eine Main-Methode enthaelt.

    public class HalloWelt <BR>
    {<BR>
    public HalloWelt(){}<BR>
    public static void main(String[] args) <BR>
    { <BR>
    System.out.println("Hallo Welt"); <BR>
    } <BR>
    } <BR>

    Kompalieren diese

    javac HalloWelt.class

    Testen diese

    java HalloWelt

    Danach erzeugen wir eine Textdatei (das sog. Manifest) mit dem Namen Mani.txt (Name unwichtig, koennte auch Manta.txt ;o) heissen)

    notepad Mani.txt <BR>
    (oder mit welchem Editor du willst) <BR>

    und fuellen diese mit folgendem Text: <BR>
    <BR>
    Main-Class: HalloWelt <BR>
    <BR>
    Wichtig: <BR>
    Gross-Kleinschreibung beachten <BR>
    Doppelpunkt und Leerzeichen nicht vergessen <BR>
    und Zeile mit einem Return abschliessen (benoetigt jar um Zeile aus Datei einlesen zu koennen)

    Erstellen der Jar-Datei

    jar -cvfm jartest.jar Mani.txt HalloWelt.class

    Testen der Jar-Datei

    java -jar jartest.jar

    Es sollte jetzt Hallo Welt ausgegeben werden.

    Wie kommt es zum Doppelklick:
    <BR>
    Wenn du das SDK installierst (unter Windows), wird normalerweise eine Dateiverknuepfung zu jar-Dateien erstellt. Im WindowsExplorer im Menue EXTRAS - ORDNEROPTIONEN - Karteikartenreiter DATENTYPEN kannst du diese normalerweise sehen. Bei JAR sollte folgender Eintrag bei Vorgang OPEN stehen - <BR>
    "C:\Program Files\Java\j2re1.4.2\bin\javaw.exe" -jar "%1" %* <BR>
    also javaw.exe (inkl. Pfad)in Hochkommatas , danach - jar , gefolgt von %1 in Hochkommatas , gefolgt von %* <BR>
    (javaw.exe macht das gleiche wie java.exe, jedoch wird keine Kommandozeile geoeffnet - ist sinnvoll, wenn man eine grafische Oberflaeche Programmiert hat)
    <BR>
    Also falls du diese Dateiverknuepfung nicht hast, musst du diese erzeugen. <BR>
    Jetzt bist du verwundert, warum bei dem Doppelklick auf jartest.jar nichts passiert.
    <BR>Antwort: es passiert was, du siehst es nur nicht. Da javaw.exe keine Kommandozeile oeffnet, kannst du auch keine Ausgabe auf dieser sehen. Wenn du in der Dateiverknuepfung statt javaw.exe java.exe verwendest, siehst du kurz die Kommandozeile aufblitzen. (also Kommandozeile geht auf, Ausgabe erfolgt, Kommandozeile geht zu) Ich weiss, das Beispiel ist schlecht gewaehlt, wollte es jedoch nicht zu kompliziert machen. Solltest du also eine grafische Oberflaeche programmiert haben ist dies ein Weg diese per Doppelklick aufzurufen.

    Gruss

    Martin

    P.S. ich habe versucht die Beschreibung so ausfuehrlich als moeglich zu halten, damit auch andere Anfaenger ohne Grundkenntnisse damit was anfangen koenne

    Comment


    • #3
      Ja, ich habe schon mit AWT und mit SWING programmiert. Muss gleich mal deine Lösung ausprobieren. Augenblicklich (vor dem Ausprobieren) sehe ich darin nur ein Problem:<br>Muss jeder Anwender meiner Software zuvor diesen Link in der Registry (bzw. EXTRAS-ORDNEROPTIONEN) setzten, bevor er meine Programme nutzen kann? Natürlich könnte ich mit Delphi ein Installationsprogramm schreiben, das dies für mich erledigt. Aber es ist ja eigentlich nicht der Sinn einer Programmiersprache, sie für jeden Anwender zuvor mit einer anderen Programmiersprache einzurichten.<p>thx für den Tipp und schonmal für den noch folgenden Tipp, Sebastia

      Comment


      • #4
        Hallo Sebastian,

        normalerweise wird unter Windows dieser Link bei der Installation der Laufzeitumgebung (jre) automatisch installiert. Aber was ist schon normal ! Ich arbeite in einer Firma mit ueber 2000 Mitarbeitern, und wir haben mindestens soviele installierte Windows-Clients. Ein Programm von einer externen Firma, welches die benoetigte JRE mitinstalliert, funktioniert auf gut 5% der Rechner nicht, da dieser Link nicht automatisch erstellt wurde. Es ist kein Problem den Link nachtraeglich einzurichten (sei es ueber ein Script, bzw. per Hand). Da es aber vorkommen kann, das der Link nicht automatisch eingerichtet wird, habe ich beschrieben, wie es geht. Wenn du weisst, auf welchem Betriebsystem deine Applikation eingesetzt wird, kannst du auch einen entsprechenden Link (Verknuepfung) mitliefern, welche den entsprechenden Aufruf (javaw -jar name.jar) enthaelt. Der User macht dann einen Doppelklick auf die entsprechende Verknuepfung. Je hetrogener das Umfeld ist (also je mehr unterschiedliche Systeme und Konfigurationen beruecksichtigt werden muessen) umso komplizierter wird die automatische Erstellung einer Verknuepfung. Da du aber von einem Delphi-Installer spricht, wird deine Applikation vor allem fuer Windows-Rechner sein. Ein Tipp, versuche keine absoluten Pfade im Installer zu verwenden, sondern arbeite mit den Systemvariablen. Wir bekommen immer wieder Probleme mit Software von "professionellen" Firmen (Spezialsoftware fuer mehrere 10000 Euro) welche nicht funktionieren, weil sie die benoetigten Dateien nicht dort finden wo sie es mit ihren absoluten Pfaden erwartet haben. Wir setzen z.B. eine MUI-Installation von W2K ein, d.h. wir installieren eine US-Version von Windows 2000 und installieren dann den vom User gewuenschten Sprachsatz, um die Dialoge und Menues anzupassen. Somit laufen einige Programme ins Leere, wenn sie auf das Programm-Verzeichnis zugreifen wollen, da dieses bei uns dan Program Files heisst.

        Gruss

        Marti

        Comment


        • #5
          Danke!!!<br>Übrigens: Bei mir war der Link eingestellt und das mit dem Autostart der Applikation hat geklappt.<p>Wirklich nochmal vielen Dank

          Comment


          • #6
            ACHTUNG!!!<br>Als ich bei mir WinRAR installiert habe, war der Link nichtmehr gesetzt!!!<br>Also an alle, die so was machen wollen: Passt mit den anderen Archiv-Programmen auf, da die sich evtl. bei den Dateiendungen in die Quere kommen.<br>Ich habe inzwischen die .jar-Dateien wieder zurückgesetzt, was ich aber nur über die Registry machen konnte. Als ich es über die Ordneroptionen versucht habe, hat der mir alle Archive (inkl .zip;.rar;...) der VM zugeordnet!<p>Ciau, Sebastian Meßme

            Comment

            Working...
            X