Applet Aus Applet signiertes jar mit externen libs erstellen

Blackhole16

Bekanntes Mitglied
Guten Morgen Com,

Ich habe ein Problem. Ich möchte ein signiertes *.jar erstellen, wo auch meine externen libs integriert sind.
Meine bisher misslungenen Versuche:
1. jar erzeugt mit http://www.java-forum.org/applets/16717-applets-webstart-anwendungen-signieren.html , wobei hier natürlich die libs nicht integriert sind, alles was ohne die libs geht, läuft auhc schon, aber das reicht mir halt nicht...
2. die jar der lib einfach hineinkopiert in meine jar: ging auch nicht
3. manifest.mf als letzte Zeile Class-Path: . lib/commons-net-3.0.1.jar angefügt, doch leider geht es immer noch nicht.
Ich verzweifel schon fast...

1. Wie kann ich eine signierte *.jar erzeugen mit externen libs?

In eclipse läuft alles, da dort die externe lib mit drin ist und man es ja sowieso nicht signieren muss.
2. Kann man diese signierte jar mit externen libs auch direkt in eclipse erzeugen?

Wenn ich aus cmd apppletviewer aufrufe, kommt nicht einmal die Frage, ob ich das Applet erlaube oder nicht.
3. Wie kann ich testweise das Applet über cmd als signiertes Applet starten?

Da ich dieses Applet ja nun signiert habe, kommt beim Aufrug der Inetseite immer eine Meldung (nach dem Motto) "Achtung, dies hier ist höchstwahrscheinlich ein Virus".
4. Kann ich die Meldung irgenwie verändern/anpassen?

mfg
BH16

PS: Ich habe google schon gefragt, aber nichts gefunden. Kann auch daran liegen, dass ich falsche keyword genutzt habe 😛
 
geht nicht... geht immer noch nicht... warum geht das nicht...

Keine Ahnung! Ohne Fehlermeldungen kann dir das niemand sagen.

Punkt 1 und 2 sind IDE-spezifisch
Punkt 3
Code:
appletviewer meine_html_datei.html
Punkt 4 ist in dem von dir verlinkten FAQ-Beitrag bereits erklärt.
 
Danke erstmal für die schnellen Antworten.

Bei einem Applet müssen m.W. alle verwendeten jars (die den Sicherheitskontext verlassen wollen) signiert werden.

Das wäre eine Idee 😉 Ich hab die lib jetzt auch signiert und in meine (signierte) jar reingepackt. Es geht aber immer noch nicht...

Keine Ahnung! Ohne Fehlermeldungen kann dir das niemand sagen.
Ich hätte ja gerne ine Fehlermeöldung gepostet, aber die bekomme ich nur über den Appletviewer, der aber nicht nach der Signatur fragt, es kommt also immer nur

Code:
Exception in thread "AWT-EventQueue-1" java.security.AccessControlException: acc
ess denied (java.lang.RuntimePermission accessClassInPackage.sun.misc)

Punkt 1 und 2 sind IDE-spezifisch
Ich hab jdk1.6.0_26.

Punkt 3
Code:
appletviewer meine_html_datei.html
Wie gesagt, er fragt nicht nach einer Signatur...

Punkt 4 ist in dem von dir verlinkten FAQ-Beitrag bereits erklärt.
Ich habe eher daran gedacht, kostenlos die Meldung irgendwie anzupassen und nichts dafür zahlen zu müssen...

mfg
BH16
 
Ich hab die lib jetzt auch signiert und in meine (signierte) jar reingepackt. Es geht aber immer noch nicht...
Du meinst, du hast die Jar-Datei (also eine Datei mit der Endung .jar) so wie sie ist in die andere Jar-Datei kopiert/gepackt?
Das geht nicht. Lege die Jar-Dateien nebeneinander in ein Verzeichnis und mache die Jar-Dateien bekannt, in dem du sie im archive-Attribut auflistest.
FAQ: http://www.java-forum.org/applets/114668-java-applet-webseite-einbinden.html

Code:
Exception in thread "AWT-EventQueue-1" java.security.AccessControlException: acc
ess denied (java.lang.RuntimePermission accessClassInPackage.sun.misc)
Wie hast du das Applet eingebunden? (Applet-Tag)

Ich hab jdk1.6.0_26.
Ich meinte deine Entwicklungsumgebung, nicht dein JDK.


Ich habe eher daran gedacht, kostenlos die Meldung irgendwie anzupassen und nichts dafür zahlen zu müssen...
Punkt 4 ist quasi nicht verhandelbar - Punkt. Nimm es einfach so hin. Wenn dein Programm erweiterte Rechte auf dem Client benötigt, sollte dieser darüber informiert und gefragt werden, ob er der Anwendung vertraut.
 
Ein jar in ein anderes jar reinpacken funktioniert nicht (man kann den Inhalt eines jars in ein anderes übernehmen) Du musst das jar ebenfalls auf dem Server signiert bereitstellen
Komisch, bei den Runnable Jar Files packt eclipse das lib doch auch direkt als jar hinein, und es läuft...
Naja egal. Habs jetzt so gemacht, wie du gesagt hast.

Du meinst, du hast die Jar-Datei (also eine Datei mit der Endung .jar) so wie sie ist in die andere Jar-Datei kopiert/gepackt?
Das geht nicht. Lege die Jar-Dateien nebeneinander in ein Verzeichnis und mache die Jar-Dateien bekannt, in dem du sie im archive-Attribut auflistest.
FAQ: http://www.java-forum.org/applets/114668-java-applet-webseite-einbinden.html
Jo danke. Habs gemacht, wie dein Vorposter auch schon geschrieben hat. Der Link hat mir echt weitergeholfen. Thx


Wie hast du das Applet eingebunden? (Applet-Tag)

HTML:
<applet code="Mainclass" archive="Main.jar, lib.jar" codebase="Server" width="x" height="y"> </applet>
Also richtig (hoffe ich) 😉

Punkt 4 ist quasi nicht verhandelbar - Punkt. Nimm es einfach so hin. Wenn dein Programm erweiterte Rechte auf dem Client benötigt, sollte dieser darüber informiert und gefragt werden, ob er der Anwendung vertraut.

Der Witz dabei ist ja nur, dass ich nur mit nem Server kommuniziere. Auf dem Client passiert nix (außer des Applets im RAM). Aber anscheinend muss ich es selbst signieren, wenn ich über html-url (im prog) Daten vom Server brauche...
Und das dumme ist halt, dass 2/3 "angeheuerten" User die Seite sofort wieder verlassen haben...

Naja egal, jetzt läuft alles.

mfg
BH16

PS: würde mich trotzdem über weitere Rückmeldungen von euch zu den genannten Fragen freuen 🙂

und: DANKE FÜR EURE HILFE
 
HTML:
<applet code="Mainclass" archive="Main.jar, lib.jar" codebase="Server" width="x" height="y"> </applet>
Also richtig (hoffe ich) 😉
Jo sieht Ok aus.

wenn ich über html-url (im prog) Daten vom Server brauche...
Was ist das für ein Server? Ist das der Webserver, von dem das Applet geladen wurde?
Wenn ja, ist u.U keine Signierung notwendig. Kommt drauf an, was dein Applet genau macht und was die externe Lib macht.
 
Ja, es ist der FTP-Server, auf dem das Applet und die externe Lib liegt.

Die lib ist die Jarkarta-Commens (kein Plan obs richtig geschrieben ist, aber ich denke es ist erkennbar was ich meine =)
Mit dieser stelle ich eine SSL-Verbindung zum (selben) Server her und bearbeite damit auch darauf Dateien.

Ich wüsste halt nur keine andere Möglichkeit, Dateien direkt auf dem Server zu bearbeiten. Eigentlich wollte ich auch genau das machen, um nicht signieren zu müssen, was aber ja nun doch der Fall ist...

Es wäre natürlich cool, wenn es auch ohne gehen würde 🙂

Geht das denn iwie (auch wenn das ein wenig Offtopic ist...)?

Eigentlich hatte ich das Inet schon umgewühlt, aber keine relativen Angaben auf Servern gefunden...

mfg
BH16
 
Hmm, um da Genaueres zu sagen reichen die Infos nicht.
Fakt ist, du musst dein Applet signieren, wenn du bspw.
  • dich zu einem anderen Server verbindest (auch Datenbanken, FTP- und E-Mail-Server)
  • einen Port öffnen willst
  • auf die lokale Verzeichnisebene des Clients zugreifen willst
  • den Rechner herunterfahren, oder den Browser beenden willst
  • Zugriff auf die Systemkonfiguration nehmen willst
  • persönliche Daten auslesen willst, wie Benutzername, Home-Verzeichnis etc.
  • usw.

Ich wüsste halt nur keine andere Möglichkeit, Dateien direkt auf dem Server zu bearbeiten.
Mit PHP zum Beispiel. In der FAQ findet sich dieser Beitrag:
http://www.java-forum.org/applets/10751-applets-ueber-php-dateien-schreiben.html
 

Zurück
Oben