FraFu: Applet Entwicklung

Hallo!

Ich hab zwar bisher viel in Java programmiert, aber hauptsächlich Middleware.
Jetzt muss ich ein Applet entwickeln und frag mich wie ich da richtig vorgehe.

Da das Applet auf das lokale Filesystem zugreifen muss, muss es signiert werden. Wie ich ein jar File signiere, weiß ich.

Im Moment gehe ich folgendermaßen vor:

Enwicklung in Eclipse. Export nach Jar - Jar signieren und im Browser testen.
Das ist mühsam, da ich nach jeder Änderung einen Export machen muss und das Jar File signieren muss (mit Batch File).
Außerdem bleibt das Applet dauernd im Cache des Browsers und desswegen muss ich den jedesmal schließen und neu laden.

Das starten des Applets direkt aus Eclipse heraus geht auch nicht, da  das Applet ja einen komplet anderen Kontext hat.

Wie geht man beim Applet Entwickeln profesionell vor?

mfg
  frafu

  1. Hallo,

    ich habe zwar nicht die ultra Ahnung, aber ich habe schon einige Applets entwickelt. Darunter waren auch welche, die vom Filesystem was eingelesen haben. Ich musste nie etwas signieren.

    Am besten lässt du das mit den Export nach .jar erstmal bleiben, damit sparst du schon mal einen Schritt. Binde doch das Applet einfach so als .class ein.

    Und wenn du die Java Konsole des Browsers (Firefox) offen hältst, dann kannst du mit einer Taste (glaube x) den Cache leeren und musst nicht ständig den Browser neu starten.

    "Professionell" nimmt man sich wohl einen Appletviewer zum entwickeln, aber das habe ich nie so richtig zufriedenstellend gebacken gekriegt.

    Gruß,
    Cruz

    1. Hallo!»» Hallo,

      ich habe zwar nicht die ultra Ahnung, aber ich habe schon einige Applets entwickelt. Darunter waren auch welche, die vom Filesystem was eingelesen haben. Ich musste nie etwas signieren.

      Wenn du das Applet von einem Webserver lädtst, dann muss es signiert sein, damit es aufs lokale FS zugreifen kann. Wenn du es lokal lädts, dann nicht. Man könnte aber auch die Java Security Policies der Java Runtime so einstellen, dass sie alles erlaubt. Aber genau das will ich nicht. Denn sonst entwickle ich hier sachen, die anschl. nirgendwo anders laufen.

      Am besten lässt du das mit den Export nach .jar erstmal bleiben, damit sparst du schon mal einen Schritt. Binde doch das Applet einfach so als .class ein.

      Kann ich .class Dateien signieren?

      Ich muss

      Und wenn du die Java Konsole des Browsers (Firefox) offen hältst, dann kannst du mit einer Taste (glaube x) den Cache leeren und musst nicht ständig den Browser neu starten.

      "Professionell" nimmt man sich wohl einen Appletviewer zum entwickeln, aber das habe ich nie so richtig zufriedenstellend gebacken gekriegt.

      Tja, genau so ein Appletviewer wird ja in Eclipse gestartet. Aber wie gesagt, dann hat das Applet einen komplet anderen Kontext als wenn ich es über einen Webserver lade. Andere Umgebungsvariablen (zb: getCodeBase().getHost(), ...) und vor allem andere Security Policies.

      mfg
        frafu

      1. Hallo,

        Wenn du das Applet von einem Webserver lädtst, dann muss es signiert sein, damit es aufs lokale FS zugreifen kann.

        Aha. Jetzt habe ich was gelernt. :)

        Kann ich .class Dateien signieren?

        Nicht dass ich wüsste. Aber wenn du nur lokal entwickelst, dann kannst du dir doch die Signierung erstmal sparen, damit es schneller vorangeht. Brauchst dich erst ganz am Ende drum kümmern.

        Tja, genau so ein Appletviewer wird ja in Eclipse gestartet. Aber wie gesagt, dann hat das Applet einen komplet anderen Kontext als wenn ich es über einen Webserver lade. Andere Umgebungsvariablen (zb: getCodeBase().getHost(), ...) und vor allem andere Security Policies.

        Ich bin wie gesagt mit so einem Ding auch noch nie zu Range gekommen, daher nehme ich am liebsten die "X-Taste und Reload Button" Entwicklungsmethode.

        Grüße,
        Cruz

        1. Hallo!»» Hallo,

          Wenn du das Applet von einem Webserver lädtst, dann muss es signiert sein, damit es aufs lokale FS zugreifen kann.

          Aha. Jetzt habe ich was gelernt. :)

          Kann ich .class Dateien signieren?

          Nicht dass ich wüsste. Aber wenn du nur lokal entwickelst, dann kannst du dir doch die Signierung erstmal sparen, damit es schneller vorangeht. Brauchst dich erst ganz am Ende drum kümmern.

          Nö. Weil ichs von einem lokalem Webserver lade und der JVM ist es egal ob das Applet von http://localhost/ oder von http://i-am-evil.com kommt.

          Aber irgendwie kann man der JVM in den Policysettings sagen, dass keine SecurityExceptions geworfen werden sollen, wenns von localhost kommt. Damit würde ich mir das signieren sparen.

          Erst am Ende drum kümmern? Ne, das mag ich nicht. Sonst bau ich da was ein, wo ich am ende drauf komme, dass das gar nicht funktioniert. Kommt aber im Prinzip aufs selbe raus wie wenn ich die JVM Policies ändere.

          mfg
            frafu

          1. Nö. Weil ichs von einem lokalem Webserver lade und der JVM ist es egal ob das Applet von http://localhost/ oder von http://i-am-evil.com kommt.

            Und wenn du es statt mit http:// einfach lokal lädst, also c:\verz\page.html im Browser öffnen mit <applet class="myClass.class"> und die myClass.class liegt im selben Verzeichnis? Dann ist gar kein Webserver zwischen und du brauchst vielleicht nicht zu signieren. Jedenfalls war es bei mir so.

            Gruß,
            Cruz

            1. Hallo!»»

              Nö. Weil ichs von einem lokalem Webserver lade und der JVM ist es egal ob das Applet von http://localhost/ oder von http://i-am-evil.com kommt.

              Und wenn du es statt mit http:// einfach lokal lädst, also c:\verz\page.html im Browser öffnen mit <applet class="myClass.class"> und die myClass.class liegt im selben Verzeichnis? Dann ist gar kein Webserver zwischen und du brauchst vielleicht nicht zu signieren. Jedenfalls war es bei mir so.

              Das ist richtig. Ich brauch aber aus diversen Gründen die Webserverumgebung, weil ich diverse Daten vom Server brauche. Lokal kann ich nur ganz wenige Teile testen.

              mfg
                frafu