2008-12-20 8 views
5

Wir haben eine große Java-Anwendung, die als Applet oder Java Web Start ausgeführt wird. Und es wächst mehr und mehr. Ein typischer Benutzer benötigt nur einen kleinen Teil der Klassen. Da Java nicht weiß, welche Klasse es in welcher JAR-Datei finden kann, lädt es alle JAR-Dateien, bis es die Klasse findet. Wenn eine nicht vorhandene Klasse geladen wird (z. B. ein Ressourcenpaket), werden alle JAR-Dateien geladen. Dies reduziert die Startzeit auf eine kleine Bandbreite sehr groß.Gibt es ein Plugin-Framework für Java Applets?

Gibt es ein kleines Framework, mit dem wir die Plugins nur bei Bedarf laden können? Oder besser bei Bedarf und im Hintergrund?

Natürlich sollte das Framework die Startzeit nicht selbst mit dieser großen Größe verzögern.

Ich denke, es sollte einen URLClassLoader zum Download verwenden.

Antwort

0

Ich denke, (ohne jnlp ich bin nicht sicher), die Sie bereits die Download-Eigenschaft:

<jar href="sound.jar" download="lazy"/> 

Da webstart keine Informationen über die jar Inhalt hat ich annehmen, dass es alle von ihnen lädt, wenn die Klasse fehlt .

Obwohl ich noch nie versucht habe, aber es gibt einen <package> Tag, wo Sie dem Webstart einige Hinweise geben können, wo Sie nach Klassen suchen können. Überprüft die this (sehr kurze) Dokumentation.

1

Dies ist keine direkte Antwort auf Ihre Frage, aber Sie können die langsamen Downloads mildern, indem Sie Pack200 verwenden, um die Größe Ihrer JAR-Dateien erheblich zu reduzieren. Ich habe vorher written darüber, wie effektiv das sein kann.

Ansonsten würde ich dem Vorschlag von asalamon74 zustimmen, das Herunterladen von JAR-Dateien zu verwenden.

Vielleicht können Sie die Reihenfolge der JARs optimieren, sodass diejenigen, die Klassen enthalten, die zuerst geladen werden, früher angezeigt werden?

2

Ich habe gehört, dass Sie benutzerdefinierte Klassenlader implementieren können und ich habe Tutorials zu diesem Thema gesehen. Damit können Sie kontrollieren, was heruntergeladen wird. Entschuldigung, ich habe das selbst nicht versucht.

Verwandte Themen