Chräcker Heller: wie starte ich (m)ein Apllet

Hallo zusammen,

seid einer Woche stoppel ich mein erstes Java-Apllet zusammen (schon mal Altgrieschich aus einem in Grieschich geschriebenen Buch gelernt?).... nun habe ich mein erstes Apllet soweit, daß es anfängt, meinen Wünschen zu folgen. Im Appletviewer, lokal im IE, mozilla und opera und von mir zuhause auch auf dem Serverplatz im Internet, auf dem ich die html-Seite und die class und ein paar grafiken geschoben habe. Auf jedem Rechner meiner Freunde und Bekannten (4 Testcomputer) funktioniert mein Apllet nicht. Ich habe es NS4-freundlich (noch) per:

<applet code="malen.class" width="600" height="390">

eingebunden, was mir der NS4 zwar mit einem "java.lan.ClassFormatError: bad major version number" honoriert, aber wir wollen ja nicht kleinlich sein.....

"natürlich" habe ich auf einheitliche Groß-kleinschreibung geachtet. "Auch natürlich" ist das applet sicherlich hundsmiserabel geschrieben, macht eh noch lange nicht alles, was es mal können soll und wird die Anzahl der unnötigen Applets einmal um eins erhöhen, aber das kann ja nicht ein Grund sein, a) bei mir (lokal) und "von mir aus" (im Internet) zu funktionieren, aber bei niemanden anderen. (ähem..... oder? - gibts eine interne JAVA-Qualitätskontrolle? ;-))))))

Woran kann es liegen? wo denke ich falsch und/oder wohin sollte ich weiter suchen? (das applet ist auch nicht das längste, was mich aber sicherlich nicht davon abgehalten hat, da grobe Schnitzer rein zu hauen, aber wie gesagt, bei mir läufts....)

Ach ja, das ganze liegt bei

http://www.stempelgeheimnis.de/test/test.html

die class lautet malen.class (was die wohl mal machen soll ;-))

Danke,

Chräcker

  1. Hi,

    fachlich kein einziger Hinweis, hab noch nie n Applet geschrieben.

    Aber: "class malen not found." - also kann´s ja erstmal noch gar nich am Applet selber liegen, oder?

    Gruß,
    Miky

  2. Ich vermute, dass das unterschiedliche Verhalten auf unterschiedliche (bzw nicht installierte) virtuelle Maschinen zurückzuführen ist. Ein generelles Problem, weshalb Applets im Internet nicht besonders verbreitet sind.

  3. Hi Chräcker,

    Im Appletviewer, lokal im IE, mozilla und opera und
    von mir zuhause auch auf dem Serverplatz im
    Internet, auf dem ich die html-Seite und die class
    und ein paar grafiken geschoben habe.

    also funktioniert es mit der Java-Installation auf
    Deinem PC.
    Das ist unabhängig davon, von woher Dein Applet geladen
    wurde, und wahrscheinlich verwenden auch alle Deine
    Browser dieselbe Java-Installation Deines Rechners.
    Diese ist der Interpreter, der Dein Applet verkraften
    muß.

    <applet code="malen.class" width="600" height="390">

    Ich denke nicht, daß es etwas mit der Einbindung zu
    tun haben dürfte.

    eingebunden, was mir der NS4 zwar mit einem
    "java.lan.ClassFormatError: bad major version
    number" honoriert, aber wir wollen ja nicht
    kleinlich sein.....

    Der Netscape 4 dürfte bei der Java Virtual Machine
    das verwenden, was in seiner Installation drin steht.
    Das ist möglicherweise weniger als die JVM Deines
    Betriebssystems ... mit den Details kenne ich mich
    allerdings nicht aus.

    bei mir (lokal) und "von mir aus" (im Internet) zu
    funktionieren, aber bei niemanden anderen.
    (ähem..... oder? - gibts eine interne JAVA-
    Qualitätskontrolle? ;-))))))

    Es gibt lokal installierte Java-Interpreter, die
    unterschiedlich viel Java können. Insbesondere gibt
    es Versionen von Java (und dessen Virtual Machine).
    Wenn Du gerade erst mit Java anfängst (und damit mehr
    darüber weißt als ich ;-), wirst Du Dich mit solchen
    Details nicht befaßt haben, sondern einfach verwendet
    haben, was bei Dir geht.

    Daß andere Clients ggf. eine ältere Java-Version haben
    und Dein modernes Applet nicht verstehen, das ist
    nicht anders, als wenn Du JavaScript1.2-Code in
    Netscape 3 anzuzeigen versuchst. Das ist das Problem
    aller Interpretersprachen: Es muß ein hinreichend ak-
    tueller Interpreter auf dem Client-Rechner da sein.

    Woran kann es liegen? wo denke ich falsch und/oder wohin sollte ich weiter suchen? (das applet ist auch nicht das längste, was mich aber sicherlich nicht davon abgehalten hat, da grobe Schnitzer rein zu hauen, aber wie gesagt, bei mir läufts....)

    http://www.stempelgeheimnis.de/test/test.html

    Ich kann unsere Firewall leider nicht dazu überreden,
    Deine Seite nicht so zu parsen, daß noch irgendwas
    von der Einbindung übrig bleibt ... I lose.

    Viele Grüße
          Michael

  4. Hallo,

    Danke erst mal Euch allen. Das mit den "versionen" klingt logisch. Nun ist mein Programm ultra simpel und kurz, aber da ich bei den ersten eingebauten event-methoden immer ein "eigendlich nicht mehr erwünscht und auf der Abschußliste" bekommen habe, und wenigstens hier mal "strict" sein wollte, vermute ich mal da den knackpunkt meines Scriptes.

    Nun ergibt sich die Frage, wie ich die "runterkompatibilität" testen kann, aber da fällt mir der gute alte NS4 ein ,-) Versuche also mal mein Programm dafür lauffähig zu machen..... (Wenn nicht noch jemand eine andere Idee hat....)

    Danke erstmal,

    Chräcker

    PS. ein "malen.class not found" hatte auch jemand meiner freunde, aber die class liegt definitiv im Ordner....

    1. Hallo Chräcker

      Die Fehlermeldung war ja:
      java.lang.ClassFormatError
      Wenn das Problem neue APIs wären, würden da irgend welche Klassen oder Methoden nicht gefunden.
      Hier ist das Problem, dass die VM schon mit dem Bytecode nichts anfangen kann.

      Bei Applets für's internet sollte man die Java-Version 1.1 verwenden. Die ist zwar steinalt, aber die NN4 und die standard IE-VM unterstützen nur das.
      Also solltest Du nur Methoden und Klassen verwenden, bei denen in der Referenz steht: since jdk 1.1.

      Um das Bytecodeproblem zu vermeiden, solltest Du beim Kompilieren angeben, dass Du 1.1 Bytecode willst. Ab jdk 1.4 ist der Bytecode Aufgrund eines neuen Sprachfeatures (assertions) nur 99%ig abwärtskompatibel. So lange man die nicht braucht, kann man aber getrost alten Bytecode kompilieren lassen. Der läuft auch auf den neuen VMs.
      Kompileraufruf:

      javac -target 1.1 ...

      Ob dir der Kompiler da dann auch gleich ankreidet, wenn Du neuere Klassen und Methoden verwendest, weiß ich nicht.

      Grüße

      Daniel

      1. Danke!!!!,

        jetzt läufts tatsächlich im NS4.... es gab keine fehlermeldungen mehr, und ich gebe zu, ich habe meinen Minicode auch noch nicht auf "since jdk 1.1." getestet, aber das folgt.

        darf ich vorsichtig noch mal fragen, ob jetzt bei jemanden "irgendwas läuft"? (dann hätte ich den fehler auf diesen "Grund" fixiert....) (man sollte auf einem "feld" per maustaste "grob" malen können, aber wenns Applet startet, wäre ich schon froh ,-)) (bin aber auch morgen wieder selber an einem anderen Rechner, nur, man ist ja so ungeduldig ,-))))

        http://www.stempelgeheimnis.de/test/test.html

        Danke nochmals....

        Chräcker

        1. Hi Chräcker

          http://www.stempelgeheimnis.de/test/test.html
          darf ich vorsichtig noch mal fragen, ob jetzt bei jemanden "irgendwas läuft"?

          [x] Netscape 4.78

          [x] IE 6

          Opera installiere ich generell nur ohne Java.

          Mozilla reagiert nicht, sollte aber eigentlich...?

          LG Orlando

          --
          SELF-TREFFEN 2002
          http://www.rtbg.de/selftreffen/
          http://www.megpalffy.org/temp/penneninhh.html

          1. Hi Chräcker

            http://www.stempelgeheimnis.de/test/test.html
            darf ich vorsichtig noch mal fragen, ob jetzt bei jemanden "irgendwas läuft"?

            [x] Netscape 4.78

            [x] IE 6

            [x] Oper 6.0

            [x] mozilla 0.9.9

            beide mit jre 1.3.1

            Gerd

            1. Hallo,

              Danke Euch beiden, jaaaa, jetzt gehts auch von meinen "fremd-Internet-PCs".... danke!

              Chräcker