Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hi,
Ich hab ein Programm das aus zwei Methoden besteht + main. Benutzt wird zusätzlich eine externe Library, die ich mit eingebunden habe.
Jetzt hab ich unter Netbeans eine ausführbare JAR-Datei erstellt, die auch nur 4KB groß ist, was ja okay ist. Problem ist nur, dass ich die komplette externe Library(ca. 1.1MB) mitliefern muss, damit das Ganze funktioniert.
Gibt es nicht irgendeine Möglichkeit nur die aus der Library verwendeten Methoden mitliefern zu müssen.
Das Programm soll häufig im Netzwerk verschickt werden und soviel unnütze Information mitliefern zu müssen ist doch ziemlich ärgerlich.
Ich bin ganz ehrlich:
Ich hab echt keine Ahnung von dem technischen Hintergrund, warum das Ganze so oft rumgeschickt wird und warum das Paket so klein sein soll.
Mach gerade ein Praktikum und wurde halt gefragt, ob so ein Programm in der Größe realisierbar ist.
Naja, und wie gesagt, das Einzige was Dem jetzt noch im Weg steht ist die Library, die man mitführen muss.
Es gibt Tools, die dir aus der externen Library nur die benötigten Klassen extrahieren und in dein jar mit reinpacken. Wenn ich mich recht erinnere, geht das mit JBuilder, aber da wird es sicher auch freie Tools für geben. Natürlich kann man bei sowas leicht reinfallen, wenn man selbst oder die Library Reflection verwenden...
Naja, es handelt sich um die JAI-Library und da Methoden daraus selber zu schreiben wird wohl leider nicht funktionieren, zumindest nicht mit meinen Fähigkeiten
Ab Eclipse 3.4 ist eine rudimentäre Form des FatJar-Plugins enthalten. Beim Export eines "Runnable Jar" werden die Klassen in einem Jar zusammengeführt. Wenn Du das Jar anschließend mit eine ZIP-Progragamm (jZip oder irgend etwas) öffnest und alle Klassen entfernst, die nicht gebraucht werden, dann lässt sich auch ein Jar noch erheblich schrumpfen. Ähnliche Funktionen enthält auch http://proguard.sourceforge.net/. Man muss allerdings aufpassen, da das Programm nicht mehr läuft, wenn zuviel entfernt wurde.
Prinzipiell funktioniert das auch direkt mit der JAI-Jar. Du musst Dich allerdings wirklich damit auskennen, was Du entfernst.
The source code for the jai-core project is licensed under the Java Research License (JRL) for non-commercial use. The JRL allows users to download, build, and modify the source code in the jai-core project for research use, subject to the terms of the license.
The source for the jai-core project is also licensed for commercial use under a new no-fee Java Distribution License (JDL). The JDL allows commercial use of Java Advanced Imaging with or without modification, as long as compatibility with the entire API Specification is maintained. This includes passing the TCK tests for Java Advanced Imaging, and retaining the javax namespace as defined by the JCP.
Praktikum klingt nach Firma und Firma klingt nach kommerziell.
Und so wie ich das verstehe, gibt es vermutlich lediglich 3 Möglichkeiten:
1. Die verwendete Bibliothek unverändert zu verteilen
2. Die verwendeten Funktionen selbst zu implementieren
3. Dir eine andere Bibliothek mit anderen Lizenzbestimmungen zu suchen
Bewart einen langfristig wahrscheinlich von ungesundem Stress.
Eine Idee habe ich noch: Pack200 (z. B. http://wiki.eclipse.org/index.php/Pack200). Damit lassen sich Jars deutlich komprimieren, ohne dass wesentliche Informationen verloren gehen.
Über die Lizenzbedingungen hab ich mir bisher keine Gedanken gemacht, es ist aber natürlich ein guter Einwand.
Und danke soweit für die restlichen Vorschläge, ich werds mir mal genauer anschauen, was sich machen läßt.