Wie teile ich ein JAR in 2 oder mehr Teile auf?

Angiii

Erfahrenes Mitglied
Hallo,

ich will ein Java-Applet in einen XPort Webserver von Lantronix laden. Dazu muss mein Eclipse-JAR mti einem Programm namens Web2Cob in eine COB Datei konvertiert werden.

Problem dabei: Das Web2Cob Programm akzeptiert nur Jars die kleiner sind als 64kb. Mein Jar hat jedoch mittlerweile schon 84kb und groß kürzen kann ich leider nicht. Der Lantronix-Support hat nun gesagt, dass ich das JAR in zwei Teile aufteilen sollte, wie das genau funktioniert konnte mir jedoch leider niemand sagen.

Wie kann ich das JAR aufteilen, so dass es später auch wieder zusammengesetzt werden kann? Ich hab damit experimentiert, dass ganze mit WirRAR zu splitten. Jedoch war der Erfolg eher mäßig.

Vielleicht gibts hier ja noch andere XPort-User, wär mal interessant zu wissen. Jedenfalls schonmal Danke für Eure Antworten
 
Ich seh schon, anscheindend ist das Problem nicht so geläufig. Ein anderer Ansatz war nun, dass ich das JAR einfach entpacke und die Files einzeln hochlade. Das Problem ist dann jedoch, dass ich nicht auf meine Class-Dateien in den einzelenen Packages zugreifen kann. Mal schauen ob ich noch was finde.

----

Edit: Kann die HTML-Seite die das JAR aufruft so umschreiben, dass es auf zwei JAR-Packete zugreifen kann? Im Moment sieht die HTML-Seite so aus:

<applet archive="test.jar" code="gui.Maingui.class" width="767" height="517">
Aktivieren Sie bitte die Java-Unterstützung für Ihren Browser!
</applet>
 
Zuletzt bearbeitet:
Das Ding ist, dass es IMHO keine gute Idee ist, sich von irgendnem Tool vorschreiben zu lassen, wie groß ein JAR sein darf. Was du durch euren Lösungsansatz tust, ist ja im Endeffekt nur das Problem zu verschieben. Die nächste 64kB Grenze kommt bestimmt. Und ehrlich gesagt - wenn mir ein Tool solcherlei Probleme in den Weg stellt, würde ich das keines Blickes würdigen. Ist das evtl. ne Evaluationverision, die diese Restriktion aufgibt, wenn man Scheine auf den Tisch legt? Ich sehe keinen Grund warum man JARs auf 64kB beschränken sollte...

Gruß
Ollie
 
Die 64kB sind durch den XPort-Webserverbaustein vorgegeben. Der XPort verfügt über einen 384kB Speicherbereich welcher in 6 Partitionen zu je 64kB aufgeteilt ist.

Zu Anfangszeiten meines Programms viel mir das Problem gar nicht auf, da das Programm ja immer unter 64kB lag und damit einwandfrei funktionierte. Alternativen zu diesem Baustein habe ich leider nicht. Aber du hast mich auf eine Idee gebracht. Ich werde den Support mal anschreiben ob sich an der Partitionierung etwas ändern lässt. Vielleicht kann ich das ja selbst definieren.
 
So hab jetzt mal die Antwort vom Support bekommen. Leider dürfen die einzelnen Dateien wirklich nicht größer als 64 kB sein. Partitionierung ändern geht nicht.

Mein zweiter Ansatz war nun, dass generierte JAR einfach wieder zu entpacken und dann die einzelnen darin enthaltenen Dateien hochzuladen. Problem: Ich habe mehrere Packages im Jar, welche nach dem entpacken als normale Ordner angezeigt werden. Diese Ordner kann ich jedoch nicht in den XPort laden, sondern nur die darin enthaltenen Class-Dateien. Dadurch wird aber meine Projektstruktur vernichtet.

Zumindest habe ich einen Notfallplan, falls gar nichts mehr geht: Ich belasse alle Classdateienn, Bilder und Properties im DefaultPackage ohne mit weiteren Packages zu arbeiten. Katastrophale Struktur - Ich freu mich schon :-(
Mal sehen obs nicht doch noch eine andere Lösung gibt.
 
Hi
K.a. ob das klappt. Beim Export einer JAR z.B. bei Eclipse kann man angeben welche Klassen man ins JAR packen will. Nun könntest du die eine Hälfte in ein JAR packen und die andere in ein zweites. Ich würde darauf achten dass du zusammenhängende Teile ins selbe JAR packst.
Mit dem richten Classpath sollte das dann auch lauffähig sein.

Die packages bleiben erhalten, die JARs sind unter 64kB. Vielleicht klappts ja.


Gruss
 

Neue Beiträge

Zurück