Tool zum verkleinern der Jars?

Status
Nicht offen für weitere Antworten.

CK

Aktives Mitglied
Hallo,
ich habe eine Anwendung die zahlreiche externe Jars benutzt.
Aus dem meisten dieser Jars benutze ich nur wenige Packages und Resourcen.
Trotzdem muss ich jedesmal die gesamten Jars mit in ein Projekt packen und
verschwende somit eine Menge speichern.

Zu meiner Frage:
Gibt es ein Tool das alle meine Jars durchsucht und nur die Klassen, Packages die
ich in verwende in einen neuen Jar zusammenpackt?

Ist recht schwierig denke ich, da ja auch die Abhängigkeiten untereinander berücksichtigt
werden muss. Das Problem denke ich ist das man viele Abhängigkeiten gar nicht
auflösen kann ohne die Sourcen zu haben.
 

tfa

Top Contributor
Außerdem: wo soll der Sinn darin liegen, JARs zu verstümmeln? Nur, dass es weniger Platz braucht? Speicher ist billig.
 

CK

Aktives Mitglied
Das mit den Lizenzen wird schwierig das stimmt.
Aber mit dem Argument "Der Speicher ist ja da!"
sollte man sich nicht abfinden.
Will man z.B. seine Programme per Mail verschicken,
dann ist meistens bei 10 MB Schluss und da wäre es
ja unsinnig eine Librarie von 5 MB mit
auszuliefern wenn man nur ein paar KB davon nutzt.
Wenn man jetzt in seinen Programm 5 bis 6
solcher Jars hat, hat das fertige Produckt im Extremfall
gleich 30 MB und man nutzt wahrscheinlich nur 1 MB.

Das wäre nicht wirklich optimal.
 

Verjigorm

Top Contributor
Benutze Webspace, ftp-zugang, direkte download-links oder sonstwas.

Ansonsten benutze ich privat z.B. GMX und die Freemail-Variante hat schon "E-Mail-Anhänge max. Größe (Empfang & Versand) 20 MB"
 

FArt

Top Contributor
Abesehen davon, dass es nur in simplen Fällen möglich sein wird die Abhängigkeiten sicher zu ermitteln, frage ich ich mich doch wie man auf die Idee kommt und was der aufwand bringen soll.

Warum fragt niemand bei Windows an, ob die DLLs nicht so angepasst werden können, dass nur die von mir verwendeten Funktionen enthalten sind... würde mir auf C:\ eine Menge Platz sparen.

Bau doch aus deinem Auto die Rückbank aus, wenn sowieso nur zwei Leute drin sitzen.
 

CK

Aktives Mitglied
was der aufwand bringen soll.

Es ist ganz normal, seine Anwendung auf das nötige zu reduzieren. Das in diesen Fall das vielleicht schlecht möglich ist aufgrund von Lizenzen und Abhängigkeiten ist wahrschienlich.
Man installiert ja z.B. auch keine Windows mit allen Sprachpaketen.
 
M

maki

Gast
Es ist ganz normal, seine Anwendung auf das nötige zu reduzieren.
Nö, habe ich noch nie gebraucht, werde ich wohl auch nie, ausser ich würde für wirklich kleine Geräte Entwickeln, aber für Desktops/Server diesen Aufwand betreiben um ein paar mikriege MiB zu sparen? Sicherlich nicht...
 

CK

Aktives Mitglied
Das stimmt da gebe ich dir recht, wenn man eh nur Dienste oder kleine Anwendung für "Standard-Systeme" schreibt dann lohnt sich der Aufwand wirklich nicht.
 
M

maki

Gast
CK hat gesagt.:
Das stimmt da gebe ich dir recht, wenn man eh nur Dienste oder kleine Anwendung für "Standard-Systeme" schreibt dann lohnt sich der Aufwand wirklich nicht.
Das habe ich nicht gesagt, eigentlich genau das Gegenteil.. :roll:

Was ich meinte:
Ob meine Web/EJB Anwendung 40MiB oder 10 MiB groß ist, macht keinen Unterschied und rechtfertigt nicht im entferntesten so eine Massnahme.

Wenn man aber für embedded Systeme entwickelt, ist es etwas anderes.
 

FArt

Top Contributor
Es ist ganz normal, seine Anwendung auf das nötige zu reduzieren.
Ne, nicht wirklich. Bei der Installation kann man u.U. optionale Packages ausnehmen (auch z.B. Sprachpakete). Aber alles andere ist nicht sinnvoll.

wenn man eh nur Dienste oder kleine Anwendung für "Standard-Systeme" schreibt dann lohnt sich der Aufwand wirklich nicht.
???:L
 

CK

Aktives Mitglied
Es gibt immer ein für und wieder für bestimmte Aktionen.
Speicherplatz ist in bestimmten Fällen ein möglicher Grund. In anderen wieder unwichtig.
Ich bin der Meinung man sollte Resourcen sparen wo es geht.
Man sollte sich damit begnügen das Speicher ja da ist und billig ist.
CPU, RAM Power ist auch da und kostet auch nit mehr so viel, trotzdem optimiert man seine Anwendung.
 

CK

Aktives Mitglied
Da gebe ich dir recht, was ich damit nur zum Ausdruck bringen wollten ist das man im Optimalfall auf alle Resourcen achten sollte.
Klar ist die Eine wichtiger als die Andere.

Aber nun denn scheint keiner ne Antwort auf meine Frage zu wissen.
 
M

maki

Gast
CK hat gesagt.:
Es gibt immer ein für und wieder für bestimmte Aktionen.
Speicherplatz ist in bestimmten Fällen ein möglicher Grund. In anderen wieder unwichtig.
Ich bin der Meinung man sollte Resourcen sparen wo es geht.
Man sollte sich damit begnügen das Speicher ja da ist und billig ist.
CPU, RAM Power ist auch da und kostet auch nit mehr so viel, trotzdem optimiert man seine Anwendung.
"Ressourcen" sind vielfältig, die teuerste ist imho immer noch Arbeitszeit, an dieser wird meist gemessen was "viel" und was "wenig" ist.

Wenn du & jeder der die Anwendung wartet/entwickelt/pflegt anfängt die jars zu verkleinern wegen ein paar MiB, kostet das mehr als wenn man sie so nimmt wie sie kommen, aber bestimmt schreibst du ja hauptsächlich Maschinencode, denn Assembler oder gar Hochsprachen, ganz zu schweigen von den OO Sprachen, brauchen ja soviele "Ressourcen"..
 

Wildcard

Top Contributor
Eine deiner Bibliotheken verwendet Reflection, eine andere deiner Bibliotheken ist über dependency injection mit einer anderen Gekoppelt. Das sind keine exotischen Fälle, sondern Alltag in moderat komplexen Software Scenarien.
Kein Tool der Welt kann das 100% anayliseren. Das ende vom Lied:
Du wirfst ein paar packages weg und 93% deiner Anwendung laufen während 7% mit undefinierbaren Fehlern abschmieren (das passiert dann übrigens nicht bei dir, sondern beim Kunden).

Soetwas tut man nicht, eine Bibliothek ist immer am Stück zu verwenden, wo Granularität sinnvoll ist, kann sich der Entwickler der Bibliothek darum kümmern. Hielt er Granularität für nicht sinnvoll/möglich, solltest du die Entscheidung respektieren.
Festplatte ist wesentlich billiger als der katastrophale Test und Wartungsaufwand einer Anwendung mit partiellen Bibliotheken die man nicht bis ins allerletzte Detail versteht.
 

CK

Aktives Mitglied
Wenn du & jeder der die Anwendung wartet/entwickelt/pflegt anfängt die jars zu verkleinern wegen ein paar MiB
Deswegen ja die Frage nach den Tool dafür, aber das mit dem Themen wie z.B. Reflection sehr ich ein das ist wirklich kaum machbar.

Soetwas tut man nicht, eine Bibliothek ist immer am Stück zu verwenden, wo Granularität sinnvoll ist, kann sich der Entwickler der Bibliothek darum kümmern. Hielt er Granularität für nicht sinnvoll/möglich, solltest du die Entscheidung respektieren.
Festplatte ist wesentlich billiger als der katastrophale Test und Wartungsaufwand einer Anwendung mit partiellen Bibliotheken die man nicht bis ins allerletzte Detail versteht.
Das sehe ich ein.

aber bestimmt schreibst du ja hauptsächlich Maschinencode, denn Assembler oder gar Hochsprachen, ganz zu schweigen von den OO Sprachen, brauchen ja soviele "Ressourcen"..
Wenn du das sagst. :cool:
Wollte wie schon ein paar mal gesagt mein Produkt soweit wie möglich optimieren.
Da dies in dem Fall mit den Libraries nicht ohne riesigen Aufwand möglich werde ich sie
so belassen.
War ja nur mal ein Ansatz auch an weiteren Stellen seine Software zu optimieren.
 

CK

Aktives Mitglied
Z.B. im Rennsport wird dies sogar getan um die Leistungsfähigkeit zu erhöhen.
 
M

maki

Gast
Und in der Luft- und Raumfahrt zählt jedes Gramm, aber was hat das mit SW Entwicklung zu tun?

Performance und Speicherverbrauch sind schon lange nicht mehr die wichtigsten Faktoren bei SW.
 
S

scooterJava

Gast
Interessante Einstellung. Das können auch nur Leute sagen, die unter Windows-Systemen groß geworden sind, wo für Microsoft Codegröße und Speicherverbrauch immer nur letztrangig waren. Dann bekommt man Systeme wie Vista, die bald 40 Mio. Codezeilen haben, wohingegen sich Linux mit 8 begnügt ...

Wer seinen Kunden riesige Programme zumutet (und seinen Kollegen, die sich dort zurechtfinden müssen), hat eine der elementaren Regeln der Softwareentwicklung nicht begriffen. Nur weil Speicher (zur Zeit) billig ist, werde ich Kunden keine Software zumuten, die Hunderte MB Speicher verbraucht, weil der Entwickler zu faul war, nur dass Sinnvolle zu compilieren.

Auf die Eingangsfrage ist bisher auch keiner konkret eingegangen. Ich selbst kenne kein solches Tool.
 

Wildcard

Top Contributor
Interessante Einstellung. Das können auch nur Leute sagen, die unter Windows-Systemen groß geworden sind, wo für Microsoft Codegröße und Speicherverbrauch immer nur letztrangig waren. Dann bekommt man Systeme wie Vista, die bald 40 Mio. Codezeilen haben, wohingegen sich Linux mit 8 begnügt ...
Bin Linux Nutzer, vertrete die Einstellung aber trotzdem

Auf die Eingangsfrage ist bisher auch keiner konkret eingegangen. Ich selbst kenne kein solches Tool.
Bin auf die Eingangsfrage eingegangen und meine deutlich gemacht zu haben warum ein solches Tool nie wirklich funktionieren kann.

Idealismus gut und schön, aber auch die Realität sollte man nicht aus den Augen verlieren.
 

byte

Top Contributor
scooterJava hat gesagt.:
Auf die Eingangsfrage ist bisher auch keiner konkret eingegangen.
Klar. Aufgrund von Reflection (und Bytecode-Instrumentation) kann es ein solches (einwandfrei funktionierendes) Tool nicht geben.
 
M

maki

Gast
scooterJava hat gesagt.:
Interessante Einstellung. Das können auch nur Leute sagen, die unter Windows-Systemen groß geworden sind, wo für Microsoft Codegröße und Speicherverbrauch immer nur letztrangig waren. Dann bekommt man Systeme wie Vista, die bald 40 Mio. Codezeilen haben, wohingegen sich Linux mit 8 begnügt ...

Wer seinen Kunden riesige Programme zumutet (und seinen Kollegen, die sich dort zurechtfinden müssen), hat eine der elementaren Regeln der Softwareentwicklung nicht begriffen. Nur weil Speicher (zur Zeit) billig ist, werde ich Kunden keine Software zumuten, die Hunderte MB Speicher verbraucht, weil der Entwickler zu faul war, nur dass Sinnvolle zu compilieren.

Auf die Eingangsfrage ist bisher auch keiner konkret eingegangen. Ich selbst kenne kein solches Tool.
Du hast den Thread offensichtlich gar nicht gelesen.

Interessante Einstellung trotzdem deinen sinnfreien Senf dazuzugeben....
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
O Produziert das Tool "jpackage" (ab JDK 14) .exe Dateien, die auf einer Zielumgebung ohne JRE lauffähig sind ?` Allgemeine Java-Themen 7
S Java-Task-Management-Tool für Windows und Mac selber programmieren Allgemeine Java-Themen 4
S Tool mit dem man die Major version im Bytecode patchen kann..? Allgemeine Java-Themen 10
W IDEA IntelliJ Build-Management-Tool selbst programmieren Allgemeine Java-Themen 2
M eigenes Seekarten-Tool (oder PlugIn?) Allgemeine Java-Themen 2
S Klassen Abstract, Interface und ein Chat Tool Allgemeine Java-Themen 1
D Tool zum skalieren von bildern Allgemeine Java-Themen 4
O Freies Tool zum Jar-File obfuscaten gesucht! Allgemeine Java-Themen 5
E Tool um Methodenaufrufe aus bestimmten Pkg zu finden Allgemeine Java-Themen 2
S Tool um mehrere Klassen in einer Klasse vereinen? Allgemeine Java-Themen 6
J Suche: Tool zum Auffinden gleichnamiger Klassen (Name und Package gleich) in unteschiedlichen JARs Allgemeine Java-Themen 5
fastjack Gutes kostenloses Coverage-Tool mit Ignorefunktionen Allgemeine Java-Themen 4
E Tool/Programm zum Zeichnen von UML Diagrammen Allgemeine Java-Themen 14
S jConsole oder anderes Monitoring Tool Allgemeine Java-Themen 5
C Midlet Tool Allgemeine Java-Themen 24
W Requirements an ein Continuous Integration Tool Allgemeine Java-Themen 21
I Tool um Gegenstände zu tauschen Allgemeine Java-Themen 11
S Video Tracking Tool Allgemeine Java-Themen 3
I Statistic-Tool Allgemeine Java-Themen 4
G Java Tool startet von heute auf morgen nicht mehr? Allgemeine Java-Themen 7
Zed Tool zum drucken von Sourcecode Allgemeine Java-Themen 9
T Suche Tool Allgemeine Java-Themen 11
N Gutes Java to UML Tool Allgemeine Java-Themen 8
W Einfaches Installer/setup tool für java programme das. Allgemeine Java-Themen 4
M Cobertura Code Coverage Tool Allgemeine Java-Themen 5
S VideoStreaming-Tool gesucht! Allgemeine Java-Themen 2
L Java Performance Check Tool Allgemeine Java-Themen 3
J Kleines Tool in Java erstellen? Allgemeine Java-Themen 20
B Tool zum Zeichnen von Systemarchitektur Allgemeine Java-Themen 2
WMaerz Der neue JDK 6 enthält keine javac.exe, tool.jar usw. Allgemeine Java-Themen 6
M Tool zum autom. Client-Update Allgemeine Java-Themen 2
T Tool für Zugriff auf Outlook? Allgemeine Java-Themen 5
M cheat tool für java Allgemeine Java-Themen 11
W VersionsVerwaltung welches Tool Verwendet ihr Allgemeine Java-Themen 12
M Programmierstill: Bitte testen anhand HTML-Tool Allgemeine Java-Themen 18
K eigenes Tool jar - maskieren der Methoden Allgemeine Java-Themen 3
J Java Parser Tool verfügbar? Allgemeine Java-Themen 3
T Warum mein such-tool schneller als Windows such-tool? Allgemeine Java-Themen 5
J Tool gesucht Allgemeine Java-Themen 7
Linad Windows Tool mit Java steuern Allgemeine Java-Themen 9
G Link zu JCreator oder anderem Tool Allgemeine Java-Themen 2
C Bilder verkleinern und zusammenführen Allgemeine Java-Themen 5
Developer_X JFrame verkleinern Allgemeine Java-Themen 20
ARadauer Bild verkleinern. Allgemeine Java-Themen 9
N Hochgeladenes Bild verkleinern und speichern Allgemeine Java-Themen 2
M bild verkleinern Allgemeine Java-Themen 9
S jpg-file: verkleinern und speichern Allgemeine Java-Themen 5
N Text verkleinern/komprimieren Allgemeine Java-Themen 11
B Java mit command line und jars benutzen? Allgemeine Java-Themen 18
RalleYTN Java 9 Module mit Dependency auf Pre-Java 9 JARS Allgemeine Java-Themen 2
S Maven Jars dynamisch laden / Plugin-Struktur erstellen Allgemeine Java-Themen 14
H NetBeans geotools 15 oder 16 - welche Abhängingkeiten gibt es? Welche Jars brauche ich? Allgemeine Java-Themen 4
windl Problem mit externen Nachladen von Jars Allgemeine Java-Themen 10
B Datei innerhalb des JARs von einer statischen Methode aufrufen Allgemeine Java-Themen 4
J Jars in unterschiedlichen Versionen Allgemeine Java-Themen 14
X Neuerdings ein Problem mit dem Starten von Jars Allgemeine Java-Themen 5
A Jars oder JNLPs aus java code in gleicher JVM starten Allgemeine Java-Themen 2
M Webstart Exception trotz signierten JARs Allgemeine Java-Themen 3
M Klassen in vielen Jars ermitteln Allgemeine Java-Themen 2
C Runnable Jars Allgemeine Java-Themen 2
M JARS in JAR? Allgemeine Java-Themen 4
D Packages in ausführbaren Jars Allgemeine Java-Themen 4
KrokoDiehl Viele JARs und deren Resourcen Allgemeine Java-Themen 9
G Output eines über Runtime.getRuntime.exec gestarteten Jars Allgemeine Java-Themen 6
R Kann ich die jars eines Applets auf verschiedenen Domains hosten? Allgemeine Java-Themen 2
Y JARs austauschen zur Laufzeit Allgemeine Java-Themen 11
D Ahängige Bibliotheken (JARs) ermitteln Allgemeine Java-Themen 6
V Anderes tmp-dir bei jars? Allgemeine Java-Themen 2
G Applet mit meheren JARs Allgemeine Java-Themen 2
E JFreeChart jars mit in meine Jar packen Allgemeine Java-Themen 6
DeeDee0815 Resourcen in JARs auslagern Allgemeine Java-Themen 4
M Klassen eines Jars auslesen Allgemeine Java-Themen 3
T Wo kann ich einzelne JARs herunterladen Allgemeine Java-Themen 3
H externe JARs in eigenem Programm-Jar einbinden. Allgemeine Java-Themen 5
N Main-Klasse wird beim Aufruf des JARs nicht gefunden Allgemeine Java-Themen 8
M Probleme mit JARs Allgemeine Java-Themen 7
spacegaier HeapSpace der VM ändern -> Verhalten von JARs und EXEs Allgemeine Java-Themen 10
J jars Allgemeine Java-Themen 4
A signed jars gegen keystore "authentifizieren" Allgemeine Java-Themen 7
C Dynamisches Nachladen von JARs (Plugin) Allgemeine Java-Themen 3
M Klassen von ausserhalb des Jars per Reflection nachladen Allgemeine Java-Themen 2
O Externe Jars in eigene JAr packen in Eclipse Allgemeine Java-Themen 5
A Verzeichnis auflisten - auch innerhalb eines Jars Allgemeine Java-Themen 6
H Jars gehen nicht Allgemeine Java-Themen 6
J Mal wieder jars Allgemeine Java-Themen 2
G Suche Programm um mehrere Jars in eines zu integrieren Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben