Erste Schritte Wo steht eigentlich das ein jar keine andere jars enthalten darf?

S

schnatter08

Gast
Hallo,

ich habe schon oft gelesen, dass ein jar keine anderen jars enthalten darf. Gibt es da auch ne offizielle Festlegung? Also ich kann zwar jars in jars haben, aber das würde ja keinen Sinn machen wenn ich die in den inneren jars enthaltenen Klassen brauche.
 
M

maki

Gast
Wo steht denn eigentlich, dass man Jars in Jars verschachteln darf?

Muss es für jede seltsame Idee ein "Geht nicht" Dokument geben?

Abgesehen davon geht das mit OSGi, steht auch so in der OSGi Doku ;)
 

Michael...

Top Contributor
ich habe schon oft gelesen, dass ein jar keine anderen jars enthalten darf. Gibt es da auch ne offizielle Festlegung?
Von dem "Verbot" hab ich noch nirgends gelesen... ;-)
Also ich kann zwar jars in jars haben, aber das würde ja keinen Sinn machen wenn ich die in den inneren jars enthaltenen Klassen brauche.
Ja, direkt aus dem Jar kannst du die Klassen im "inneren" Jar nicht nutzen. Jar ist ja ein Archiv Format (zip/rar...)
 

TheDarkRose

Gesperrter Benutzer
Klar geht das! Schon mal ein Runnable Jar bei Eclipse exportiert? Entweder werden die Jars dann zu einer zusammengefügt, oder sie bleiben als Ganzes in dem entstehenden Jar enthalten.

Also alle abhängikeiten in eine Jar repacken ist s*****e, da dies Lizenzrechtliche Probleme bringt.
Und jars in jars verschachteln geht in diesem Fall auch nur, dadurch dass Eclipse einen eigenen jar-in-jar Classloader mit reinpackt. Funktioniert aber auch nicht immer zuverlässig.
 

TheDarkRose

Gesperrter Benutzer
Man sollte aber nicht immer nur den technischen Aspekt, sonder auch den lizenrechtlichen betrachten.

IMHO finde ich, die Jars in einem Ordern neben der Jar zu legen viel besser, da man bei Updates nicht immer die ganze Anwendung ausliefern muss.
 

Noctarius

Top Contributor
Ich hab in meinem aktuellen Projekt eine Kombination gewählt. Plugins kann man als einzelnes JAR ausliefern, wenn man nur Abhängigkeiten gegen das Framework hat oder als ZIP wenn man eigene Abhängigkeiten hat (z.B. an nen Cache System wie EHcache). Letzteres wird dann in ein temporäres Verzeichnis (work/myzip/...) entpackt und von da geladen.
 
S

Spacerat

Gast
1. Jar-in-Jar ist ebenso Schwachfug wie IrgendEinAndererPacker-in-IrgendEinAndererPacker, weil das zuvor komprimierte stets weiteren und damit wieder mehr Platz einnimmt, z.B. ganz allein durch die Info, dass eine Datei unkomprimiert in ein Archiv eingefügt wurde.
2. Klassen aus Jar-in-Jar klappt immer dann vorzüglich, wenn man die URL zum Bytecode kennt. Leider muss dazu das innere Archiv in ein temporäres Verzeichnis kopiert werden, damit man eine solche bekommt. Aus diesem Grund kann man sich Jar-in-Jar von vorneherein ebenfalls sparen.
 

Noctarius

Top Contributor
1. Jar-in-Jar ist ebenso Schwachfug wie IrgendEinAndererPacker-in-IrgendEinAndererPacker, weil das zuvor komprimierte stets weiteren und damit wieder mehr Platz einnimmt, z.B. ganz allein durch die Info, dass eine Datei unkomprimiert in ein Archiv eingefügt wurde.
2. Klassen aus Jar-in-Jar klappt immer dann vorzüglich, wenn man die URL zum Bytecode kennt. Leider muss dazu das innere Archiv in ein temporäres Verzeichnis kopiert werden, damit man eine solche bekommt. Aus diesem Grund kann man sich Jar-in-Jar von vorneherein ebenfalls sparen.

Nope man kann das durchaus machen wenn man mag:
http://www.java-forum.org/allgemeine-java-themen/60569-jar-jar-urlclassloader.html#post375414

Und das temporäre entpacken ist eher eine Art Deployment wie es Containersysteme machen, z.B. EAR, WAR, RAR, ...
 
S

Spacerat

Gast
Nope heisst unbedingt Nein? Ich sag' mal, eine Anwendung zwecks Verbreitung mit all seinen Archiven und Zeugs in einem Container zu halten, geht durchaus in Ordnung. Aber eine solche Anwendung bei ständiger Verwendung in diesem Zustand zu belassen, ist celebrale Diarrhoe (mein neues Lieblingswort... kann mir nicht helfen :lol:). Wenn das jeder machen würde, wären wir bald bei Jar-in-Jar-in-Jar-uswmoe. Und ja, den URLClassloader kenn' ich bereits; Ist für das Nachladen von Jar-Archiven ausserhalb des eigentlich gesetzten Klassenpfades sehr hilfreich.
Kurzum: Nirgends steht, das Jar-in-Jar verboten ist, aber auf jeden Fall sollte man wissen, wann es Sinn macht und wann nicht.
 

TheDarkRose

Gesperrter Benutzer
Naja, RMI und JNDI-Lookups, sicher auch Reflection darunter. Kurz zum testen als jar-in-jar exportiert, und bumm, ClassNotFoundException. Mit den Jars in einen Ordner neben der hauptjar hat es tadellos funktioniert.
 

Noctarius

Top Contributor
Die Frage ist ja wie der arbeitet. Es reicht ja nicht, dass da nur ein Classloader ist, schließlich gibt es ja auch RMIClassLoader... ClassLoading ist halt kein einfaches Thema und doch behaupte ich, dass es in jedem Fall möglich ist diese Strategie zu fahren, eben immer mit der Einschränkung zu überlegen: Macht es überhaupt Sinn?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A String split funktioniert nicht, wenn mehr als 1 Ziffer vor dem Zeichen steht nach dem er trennen soll? Java Basics - Anfänger-Themen 4
L Warum ist die Ausgabe anders als das was im Bezeichner steht? Java Basics - Anfänger-Themen 4
X Wo steht, ob eine Datei big, little oder bi-endian codiert ist? Java Basics - Anfänger-Themen 3
Dimax Wie erkennt man dass der gesuchte am Zeilenanfang steht Java Basics - Anfänger-Themen 10
B Wie steht UML mit Java in Verbindung? Java Basics - Anfänger-Themen 1
V Klassen Bestimmen Sie die erste und letzte Position an der ein 'c' steht? Java Basics - Anfänger-Themen 3
T Erste Schritte für was steht das "this" in dem Beispiel... Java Basics - Anfänger-Themen 2
P Kann Ziffer die am Ende einer Zeile steht (.txt) nicht in int übersetzen Java Basics - Anfänger-Themen 11
S für was steht dieses e ?? Java Basics - Anfänger-Themen 4
N prüfe ob etwas in einer Matrix steht... Java Basics - Anfänger-Themen 14
J Test steht vor der Tür !! Java Basics - Anfänger-Themen 2
S Exception steht immer woanders??? Java Basics - Anfänger-Themen 5
V Wofür steht das args / arguments in Main Methode Java Basics - Anfänger-Themen 4
G regulärer Ausdruck alles was zwischen ' ' steht Java Basics - Anfänger-Themen 4
K java syntax: wofür steht super(screen)? Java Basics - Anfänger-Themen 5
B Was steht innerhalb von solchen <.> Klammern Java Basics - Anfänger-Themen 2
G Wie prüfen ob ein einer Datei was drin steht? Java Basics - Anfänger-Themen 7
S supertyp steht ohne super in hierachy - eclipse Java Basics - Anfänger-Themen 4
R Abfragen, ob schon ein Eintrag in der HashMap steht Java Basics - Anfänger-Themen 11
J Wofür steht \r? Java Basics - Anfänger-Themen 7
H Wie geht eigentlich Objektorientierung? Java Basics - Anfänger-Themen 14
P Methode die eigentlich einen Scanner benötigt mit toString() Java Basics - Anfänger-Themen 5
J Fehler beim generieren von 4 Zufallszahlen Zahl doppelt ist eigentlich ausgeschlossen Java Basics - Anfänger-Themen 9
V Bin eigentlich noch VOR dem Anfang .... Java Basics - Anfänger-Themen 9
M Warum ist Maven als Technologie eigentlich so sicher? Java Basics - Anfänger-Themen 0
X SAX Parser, wie weit ist der eigentlich? Java Basics - Anfänger-Themen 6
R Eigentlich richtig, eigentlich... Java Basics - Anfänger-Themen 4
C Erste Schritte was macht eigentlich "for (;;)" Java Basics - Anfänger-Themen 7
B String der eigentlich eine Ansammlung von HEX zeichen ist in datei schreiben in Hex Java Basics - Anfänger-Themen 8
D Muss ich eigentlich immer auf die Verwendung des richtigen Datentyps achten? Java Basics - Anfänger-Themen 7
F Wie groß ist eigentlich ein HashMap? Java Basics - Anfänger-Themen 13
D Ist es eigentlich ungünstig direkt in einem Konstruktor bereits umfangreichen Logikcode auszuführen? Java Basics - Anfänger-Themen 11
alderwaran closed source jar, kein javadoc. was macht methode x eigentlich? ( oracle forms pjc beans ) Java Basics - Anfänger-Themen 2
H Warum sind in Java Strings und Arrays eigentlich unveränderlich? Java Basics - Anfänger-Themen 2
T Interfaces: Braucht man abstrakte Klassen eigentlich noch? Java Basics - Anfänger-Themen 3
A [gelöst]Zwei Ausgaben, die eigentlich gleich sein sollten Java Basics - Anfänger-Themen 9
K Was bedeutet das eigentlich.... Java Basics - Anfänger-Themen 18
G Was ist eigentlich SWT? Java Basics - Anfänger-Themen 23
E Was ließt der BufferedReader eigentlich ein? Java Basics - Anfänger-Themen 3
S Desginfrage Interface - aber wozu eigentlich? Java Basics - Anfänger-Themen 2
N läuft der thread eigentlich weiter? Java Basics - Anfänger-Themen 13
G Warum eigentlich static void? Java Basics - Anfänger-Themen 3
N Welche software hab ich eigentlich ? Java Basics - Anfänger-Themen 17
krgewb Keine richtige Doku Java Basics - Anfänger-Themen 5
N Interpreter-Fehler Compiler zeigt keine Fehler an, aber das Programm läuft nicht (BlueJ) Java Basics - Anfänger-Themen 2
G Endlosschleife keine Rückgabe Java Basics - Anfänger-Themen 36
Nooobi Regex und .matches() geben keine Ausnahme Java Basics - Anfänger-Themen 10
berserkerdq2 Warum ist das keine Referenzkopie mehr? Java Basics - Anfänger-Themen 26
O Java 17 keine Pflicht um Exceptiones zu behandeln? Java Basics - Anfänger-Themen 2
nbergmann Installation unter jdk.java.net: Keine ZIP-Datei zum entpacken Java Basics - Anfänger-Themen 2
M Eclipse kennt keine String Klasse mehr Java Basics - Anfänger-Themen 1
K Erste Schritte "Taschenrechner" zeigt keine Komma Zahlen an. Java Basics - Anfänger-Themen 8
M Keine Ausführung von System.out.println() Java Basics - Anfänger-Themen 3
H Warum kann man keine Parameter in die main-Methode packen? Java Basics - Anfänger-Themen 4
B Nach eingefügtem Code erkennt Compiler keine Instanzvar und meldet SyntaxError Java Basics - Anfänger-Themen 2
A keine Ergebnisse - String nummer in array nummer converting Java Basics - Anfänger-Themen 1
JavaClap "Bruchrechner" liefert Fehler/keine Ausgabe bei Addition und Subtraktion Java Basics - Anfänger-Themen 0
M Regex nur Zahlen und Punkt zulassen, Keine Eingabe(Leeres TextFeld) nicht zulassen Java Basics - Anfänger-Themen 6
B Ich kann keine Hühner töten Java Basics - Anfänger-Themen 49
C Ganzzahlige Werte in Boolean ausgeben und überprüfen ob Primzahl oder nicht, wenn es keine Primzahl ist soll es die Primfaktorzerlegung ausgeben Java Basics - Anfänger-Themen 4
I Regex findet keine Treffer Java Basics - Anfänger-Themen 4
B Keine Ausgabe .. Woran liegt das? Ich komme nicht weiter Java Basics - Anfänger-Themen 14
T Bei mir wird keine javac angezeigt sondern nur javacpl Java Basics - Anfänger-Themen 2
R Keine Verbindung mit MariaDB Java Basics - Anfänger-Themen 18
O Input/Output newbile und keine Ahnung! Java Basics - Anfänger-Themen 16
S Kann keine Bilder laden? Java Basics - Anfänger-Themen 9
C Problem: PC ohne Internet und keine Möglichkeit Programme zu laden Java Basics - Anfänger-Themen 5
Bun17 Keine Ausgabe in der Konsole Java Basics - Anfänger-Themen 2
R Keine Verbindung zu MySql über Netbeans Java Basics - Anfänger-Themen 15
D jsoup.select findet keine elemente Java Basics - Anfänger-Themen 2
U Null Exception aber keine Ahnung warum Java Basics - Anfänger-Themen 5
W Was bedeutet im Struktogramm „zufall“ aufrufen (keine Parameterübergabe)? Java Basics - Anfänger-Themen 8
T Keine Ahnung vom Programieren Java Basics - Anfänger-Themen 28
A SelectionSort bringt keine konstanten Ergebnisse Java Basics - Anfänger-Themen 4
J RPN Taschenrechner - keine Lösung!! Java Basics - Anfänger-Themen 84
I equals (Override) mit eigener Exception (keine Runtime-Exception) Java Basics - Anfänger-Themen 9
C Keine javac.exe in bin-Datei Java Basics - Anfänger-Themen 3
A Vollkommene Zahlen: Findet keine Einzige Java Basics - Anfänger-Themen 9
J Input/Output javac HelloWorld.java - Keine Textausgabe in der Konsole Java Basics - Anfänger-Themen 4
H JDK installieren keine Installationsroutine bei Javainstallation sichtbar Java Basics - Anfänger-Themen 4
H Buttons zeigen keine Reaktion Java Basics - Anfänger-Themen 6
I Programm von mir - keine Ahnung mehr ob richtig falsch:-( Java Basics - Anfänger-Themen 6
D Datentypen Datentyperstellung | Kompiler sagt Syntax Error doch ich find keine Lösung Java Basics - Anfänger-Themen 2
snipesss IDE zeigt keine Fehler an, Programm wird jedoch nicht ausgeführt. Java Basics - Anfänger-Themen 18
Khorgoroth Erste Schritte Keine Ausgabe Java Basics - Anfänger-Themen 2
P Listen sortieren mit Binärbaum gibt keine Ausgabe ab 10000 Integern Java Basics - Anfänger-Themen 14
Z AWT package -> keine Konsole? Java Basics - Anfänger-Themen 2
Henri keine Ausgabe Java Basics - Anfänger-Themen 5
J TableView zeigt keine Daten an Java Basics - Anfänger-Themen 14
C Java stellt unter Windows keine Umlaute dar Java Basics - Anfänger-Themen 9
A Keine Konsolenausgabe Java Basics - Anfänger-Themen 5
D Methoden Filewriter macht keine Zeilenumbrüche Java Basics - Anfänger-Themen 3
D Compiler-Fehler NullPointerExeption aber Ecplise zeigt keine Fehler an?! Java Basics - Anfänger-Themen 8
D addActionListener zeigt keine Wirkung Java Basics - Anfänger-Themen 8
S Warum erlaubt ein while-Loop keine Variablen-Declaration wie der for-Loop..? Java Basics - Anfänger-Themen 6
M Lottozahlen 6 aus 49 keine doppelten Java Basics - Anfänger-Themen 5
D Keine Ausgabe in meinem Helden Programm Java Basics - Anfänger-Themen 2
M Keine Ausgabe Java Basics - Anfänger-Themen 4
C PrintWriter schreibt keine in Strings enthaltenen Zeilenumbrüche Java Basics - Anfänger-Themen 9
D Keine Funktion bei "else" Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben