aus mehreren jar files, ein großes basteln

Status
Nicht offen für weitere Antworten.

vodn7v

Bekanntes Mitglied
Hallo,
ich habe mehrere jar files und möchte diese zu einem großen jar file zusammenfügen.
ist sowas überhaupt möglich?
wenn ja nach welchem stichwort muss ich da zuerst suchen ??

vielen dank !!
 

The_S

Top Contributor
Mit dem Eclipse-Plugin FatJAR geht das. Du solltest dir aber die Frage stellen, ob das

a) rechtlich möglich
b) sinnvoll ist
 

vodn7v

Bekanntes Mitglied
danke, das hört sich schonmal gut an. soweit ich gelesen habe kann man damit ein ganzes projekt als jar verpacken und es starten.
ich möchte aber lediglch 30 einzelne jar dateien zu einer großen jar datei zusammenführen, die dann in mein projekt integriert werden kann.

ist das damit auch möglich ??

danke !!
 

mvitz

Top Contributor
Klar, alle .class entpacken und alle zusammen in ein jar wieder verpacken. Kannst du höchstens Probleme mit dem manifest.mf bekommen.

Aber die große Frage dabei ist, ob das mit den von dir benutzten Libraries lizenzrechtlich aussieht.
 
M

maki

Gast
30 jars in eine jar packen um sie ins Projekt zu "integrieren"?
Da müsste man sich schon sehr genau überlegen ob das wirklich sinnvoll ist.
 

vodn7v

Bekanntes Mitglied
lizensrechtlich ist das, denke ich kein problem. ich möchte es ja nur übersichtlich halten. die ganzen jar dateien die ich fuer mein framework benötige sind lizenstechnisch unter lgpl oder gpl und ich möchte es einfach etwas übersichtlicher haben =)
und aus ca 30 jar dateien die klassen rauszuholen um mir daraus wieder eine einzelne jar datei zu basteln, ist mir ein bischen viel aufwand. ich dachte das es irgednwie einfacher geht.

alle jars makieren, rechtsklickt --> jars zusammenführen ^^

aber so einfach geht das wohl nicht oder? =)

danke !!
 

Ebenius

Top Contributor
Du veröffentlichst Deine Software selbst unter GPL? Dann ist das neu zusammenpacken von LGPL und GPL-Bibliotheken kein Problem, sofern Du alle Lizenzen ausweist und den Quelltext entsprechend verfügbar machst.

BTW: Das Zusammenpacken ist ja nicht aufwendig:
Code:
#! /bin/bash

# standard test whether selfdir exists
case "$0" in
  /*) self=$0 ;;
   *) self="$(pwd)/$0" ;;
esac

set -e

selfdir="$( (cd "${self%/?*}" && pwd) )"
[ "${selfdir}" ] || exit 1

# first argument is target JAR file
if [ $# -ne 1 ] ; then
  echo 2>&1 "Usage: "
  echo 2>&1 "$0 TargetJarFile"
  exit -2
fi

# create tmp dir
test -d "${TMPDIR}" || (echo 2>&1 "Temp dir '${TMPDIR}' does not exist" ; exit -1)
tmp="${TMPDIR}/jarbundle,$(date '+%Y%m%d%H%M%S')"

# unpack all *.jar
(
  mkdir "${tmp}"
  indir="$(pwd)"
  cd "${tmp}"
  for f in "${indir}/"*.jar ; do
    jar -xf "$f"
  done
)

# pack all unpacked files
jar -cf "$1" -C "${tmp}" .
jar -i "$1"

# remove tmp dir
rm -rf "${tmp}"

Ebenius
 

ice-breaker

Top Contributor
Du veröffentlichst Deine Software selbst unter GPL? Dann ist das neu zusammenpacken von LGPL und GPL-Bibliotheken kein Problem, sofern Du alle Lizenzen ausweist und den Quelltext entsprechend verfügbar machst.

das Programm muss erst wieder unter die GPL gestellt werden, sobald es distributed wird, für den "privaten" Gebrauch (keine Weitergabe) "entfallen" also die Bedingungen der Herausgabe:
Frequently Asked Questions about the GNU Licenses - GNU Project - Free Software Foundation (FSF)
 

mvitz

Top Contributor
Wahlweise zur bash Variante von Ebenius hier das ganze mithilfe von Groovy & Ant (Dementsprechend kann man das ganze auch nur mithilfe von Ant regeln, die Tasks dafür sind: (mkdir, unjar (mit innerem fileset), jar, delete)

[HIGHLIGHT="Java"]// source directory
def myDir = "/home/mvitz/test"
def myFile = "neuesJar.jar"
// Creating temp file
def tmpDir = "$myDir/temp"
def ant = new AntBuilder()
ant.mkdir(dir:tmpDir)
// Unjar each jar file
ant.unjar(dest:tmpDir) {
fileset(dir:myDir) {
include(name:"*.jar")
}
}
// Create new jar file
ant.jar(basedir:tmpDir, destfile:"$myDir/$myFile")
// Remove temp directory
ant.delete(dir:tmpDir)[/HIGHLIGHT]
 

Wildcard

Top Contributor
Als Anmerkung: In kürze wird so ein 'fat jar' mit Eclipse möglich sein oder das rechtlich in der Grauzone befindliche FatJar Plugin.
Der Eclipse Jar Export Wizard wird vermutlich ab 3.5 die Option anbieten ein single jar zu erzeugen und installiert dann einen custom ClassLoader der jar in jar versteht.
 

The_S

Top Contributor
@Wildcard

klingt interessant (ob das jetzt positiv oder negativ ist, sei mal dahingestellt). Woher hast du die Info? Oder ist das für euch Eclipse-Programmierer wieder was internes ;) ?
 

Wildcard

Top Contributor
klingt interessant (ob das jetzt positiv oder negativ ist, sei mal dahingestellt). Woher hast du die Info? Oder ist das für euch Eclipse-Programmierer wieder was internes ;) ?
https://bugs.eclipse.org/bugs/show_bug.cgi?id=219530

Wieso isn das Plugin in einer rechtlichen grauen Zone?!
Es stellt sich die Frage in wie weit du etwas as-is auslieferst, wenn du es auspackst und neu zusammen packst. Je nach Lizenz kann das problematisch sein bzgw. an besondere Auflagen gekoppelt sein
 

thE_29

Top Contributor
Nunja, dafür kann das Plugin nix!
Das ist das gleiche als wenn man sagen würde, DVD-Brenner sind in der grauen Zone!
Man kann damit DVD Raubkopien erstellen, aber auch seine Bilder brennen...

Liegt halt am Anwender, sich vorher die Lizenz anzugucken :)
 

Wildcard

Top Contributor
Ja, sorry, das war inkorrekt ausgedrückt. Natürlich nicht das Plugin selbst, sondern dessen Verwendung kann rechtlich problematisch sein.
 

vodn7v

Bekanntes Mitglied
@all: erstmal vielen dank fuer die ganzen antworten !! =)

@The_S: ich habe das mit dem FatJar ausprobiert und versucht die Jar mit hilfe des Tutorials zu erstellen. Leider bekomme ich ab einem bestimmten punkt immer eine Fehlermeldung.

Projekt demolib erstellt --> rechtsklick auf das projekt --> Build Fat Jar

Dann bekomme ich immer diese "Fehler-" Meldung: Information: The chosen operation is currently not available.


Kennt das jemant??

Ansonsten versuche ich jetzt erstmal die variante aus der Faq.

Danke euch !!
 

The_S

Top Contributor
@The_S: ich habe das mit dem FatJar ausprobiert und versucht die Jar mit hilfe des Tutorials zu erstellen. Leider bekomme ich ab einem bestimmten punkt immer eine Fehlermeldung.

Sorry, ich halte von der Jars-ineinander-reinpackerei nichts und habe deshalb auch keinerlei Erfahrung mit FatJAR - ich weiß lediglich, dass es existiert. Sorry!
 

thE_29

Top Contributor
Tjo, ich mach das meistens so, wenn ich keine IDE zur Hand habe ;)

Da ich bald auf Eclipse umsteigen werde (bzw, muss) mache ich vielleicht da ein Plugin :)
 

vodn7v

Bekanntes Mitglied
puh. ich nochmal.. also irgednwie funktioniert es doch nicht. habe es mit 2 jars versucht. aber es geht nicht bei allen.

habe mir eine batch datei geschrieben, die das handelt.

bei manchen entpackten jars bekomme ich beim kopieren in die große jar folgende fehlermeldung:

z.B. org/mylin/xml/XsdDOMValidator.class <ein = 5343> <aus 2543> <Komprimiert 52%> ....

Fehlermeldung:

Code:
java.lang.ClassCastException: java.io.File
	at sun.tools.jar.Main.update(Main.java:434)
	at sun.tools.jar.Main.run(Main.java:166)
	at sun.tools.jar.Main.main(Main.java:903)

das habe ich bei manchen jar files.. nicht allen.

ist dir sowas bekannt ?

danke!


EDIT:

sehr merkwürdig.. wenn ich die klassen einzeln in die jar kopiere dann funktionierts. wenn ich alles per batch ablaufen lasse nicht. sind es vllt zu viele?

danke
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
reibi Classenpath mit mehreren gleichen jar-Files Allgemeine Java-Themen 7
M Die gleiche Klasse in mehreren JAR files Allgemeine Java-Themen 5
B Ein Objekt einer Klasse mehreren anderen Klassen zur Verfügung stellen? Allgemeine Java-Themen 6
X Regex mit mehreren Bedingungen machen Allgemeine Java-Themen 5
P Projekte entwickeln mit mehreren Personen Allgemeine Java-Themen 1
C Aus MEHREREN Excel Tabellen bestimmte Zelle addieren Allgemeine Java-Themen 1
D Objekt-Suche mit mehreren optionalen Parametern Allgemeine Java-Themen 6
M JavaFX Button mit mehreren Aktionen? Allgemeine Java-Themen 7
J Soap Client mit mehreren URLs in Servlets Allgemeine Java-Themen 0
J Aus mehreren Klassen ein Datei ausführbare machen Allgemeine Java-Themen 6
I Anwendung auf Netzlaufwerk von mehreren Usern gleichzeitig nutzbar. Allgemeine Java-Themen 3
M Klassen Eine Klasse in mehreren Klassen einbinden Allgemeine Java-Themen 11
perlenfischer1984 Testng : Funktion mit mehreren Parametern testen Allgemeine Java-Themen 5
I Methoden Schnelle Hilfe benötigt - Kleines Video/Slideshow aus mehreren Bildern erstellen Allgemeine Java-Themen 3
F JScrollPane mit mehreren Panels Allgemeine Java-Themen 1
S Text in mehreren Sprachen korrekt darstellen? Wie waehle ich die Fonts aus..? Allgemeine Java-Themen 0
K Problem: Java-Klasse mit mehreren Threads als eigenen Prozess starten Allgemeine Java-Themen 3
AssELAss String mit mehreren Zahlungsbeträgen formatieren Allgemeine Java-Themen 10
Thallius Speicherverhalten von Properties und mehreren Threads Allgemeine Java-Themen 5
C DBConnection als Methode in mehreren Klassen Allgemeine Java-Themen 4
7 Verbinden von Mehreren Klassen Allgemeine Java-Themen 29
A Thread: Code paralell ausführen in mehreren Instanzen Allgemeine Java-Themen 1
M Interface Generische Klassen mit mehreren Typen überschreiben Allgemeine Java-Themen 0
J Projekt mit mehreren Einzelprogrammen Allgemeine Java-Themen 2
K Laufzeitermittlung an PCs mit mehreren Prozessorkernen Allgemeine Java-Themen 5
Jats Hilfe bei Bank mit mehreren Klassen Allgemeine Java-Themen 11
D Von mehreren Objekten eine Eigenschaft abfragen Allgemeine Java-Themen 11
B Rechnen mit mehreren Variablen Allgemeine Java-Themen 2
S Objekt synchronisieren, sodass es nicht von mehreren Threads benutzt wird..? Allgemeine Java-Themen 2
L Zugriff auf ein Objekt mit mehreren Threads Allgemeine Java-Themen 11
L Warten bei mehreren Threads, bis Ende erreicht ist Allgemeine Java-Themen 2
D JTabel sortieren nach mehreren kriterien Allgemeine Java-Themen 3
K System.exec() Programm mit mehreren Parametern Allgemeine Java-Themen 8
H wait() and notify() mit mehreren Prozessen Allgemeine Java-Themen 14
W Map / Tupel aus mehreren Elementen? Allgemeine Java-Themen 8
V javadoc mergen / aus mehreren eclipse plugins ein javadoc Allgemeine Java-Themen 3
E Aus mehreren PDFs eines machen, zusammenfügen mittels iText Allgemeine Java-Themen 1
T Problem mit mehreren Fenstern Allgemeine Java-Themen 2
P HashMap mit mehreren gleichen keys Allgemeine Java-Themen 4
E focus problem (mit mehreren frames) Allgemeine Java-Themen 10
B Serialisieren von mehreren Objekten Allgemeine Java-Themen 7
C Auswahl einer Version, bei mehreren installierten Versionen Allgemeine Java-Themen 3
O System.nanoTime() einheitlichen Wert auf mehreren Rechnern? Allgemeine Java-Themen 9
S ArrayList nach mehreren Spalten sortieren? Allgemeine Java-Themen 13
D Werte aus mehreren getMethoden auslesen Allgemeine Java-Themen 2
S Vererbung von mehreren Klassen? Allgemeine Java-Themen 5
M Alle möglichen Kombinationen von mehreren Objekten berechnen Allgemeine Java-Themen 6
B Aus mehreren Fenstern(Dialogen) eins machen! Allgemeine Java-Themen 2
C Map(Key/Value) mit mehreren Values Allgemeine Java-Themen 16
C Probleme beim Erstellen eines runnable-jar files Allgemeine Java-Themen 1
H Mehrere PNG-Files in einer Datei Allgemeine Java-Themen 9
R Delete files before creating new from temp using Java file method Allgemeine Java-Themen 1
X Files.walkFileTree zählt nicht richtig Allgemeine Java-Themen 2
L Mehrere .Jar Files aufrufen Allgemeine Java-Themen 9
P Am Application Server - Selbe files aber trotzdem CNF Allgemeine Java-Themen 2
B Maven Zugriff auf files aus einem kompilierten jar Allgemeine Java-Themen 15
S Eigenschaften (hier Verknüpfung) eines Files lesen Allgemeine Java-Themen 2
M *.class Files ausführen Allgemeine Java-Themen 2
F Java moved Files statt sie zu kopieren Allgemeine Java-Themen 12
B Existenz eines Files max 30 sec prüfen Allgemeine Java-Themen 5
C Input/Output Zip Files über Socket senden und empfangen Allgemeine Java-Themen 6
J Java Software Compare Files und Neue File erstellen Allgemeine Java-Themen 0
X Wav-Files abspielen Allgemeine Java-Themen 2
L Zwei Files miteinander vergleichen und Grafisch darstellen Allgemeine Java-Themen 1
W audio files metadaten Allgemeine Java-Themen 2
M Threads Excel files bearbeiten Allgemeine Java-Themen 4
J Wie kann man .txt Files übers Internet verschicken? Allgemeine Java-Themen 53
V Files mit Umlauten ergeben keine Größe Allgemeine Java-Themen 9
K Zip-Archive mit temporären Files erstellen Allgemeine Java-Themen 16
M Verschlüsselung von Text und Files durch RSA (Encoding Problem) Allgemeine Java-Themen 7
M wav-files kanäle zusammenfügen + pitchen Allgemeine Java-Themen 6
R Löschen von Files nicht möglich Allgemeine Java-Themen 11
B Files.isDirectory Allgemeine Java-Themen 14
P Ordnerstruktur nach .js-Files durchsuchen Allgemeine Java-Themen 2
L Class Files , Methode .delete() Allgemeine Java-Themen 13
P Files - nach der reihe String reinschreiben Allgemeine Java-Themen 2
J Laden von JAR Files geht ohne ADMIN Rechte sehr langsam Allgemeine Java-Themen 6
A Navigation zu Files innerhalb jar Allgemeine Java-Themen 3
P JAVA Bilder/Videos in Form von Files vergleichen Allgemeine Java-Themen 7
B Eclipse Attache source to own jar-files Allgemeine Java-Themen 2
B Permissions of Folders/Files Allgemeine Java-Themen 6
A External Sort - too many open files Allgemeine Java-Themen 6
E Files Kopieren Allgemeine Java-Themen 8
V Mac: Paketinhalt eins Files öffnen, wie? Allgemeine Java-Themen 3
M Übergabe mehrer Files an selbstprogrammieren Parser Allgemeine Java-Themen 4
reibi Separator in java.util.Properties-Files Allgemeine Java-Themen 3
M Webservices: WSDL Files ohne "Service" Element? Allgemeine Java-Themen 4
ruutaiokwu System.out auf files umlenken in log4j.xml Allgemeine Java-Themen 4
X Log files monitoren Allgemeine Java-Themen 7
reibi Files über Classpath laden Allgemeine Java-Themen 22
S Viele zip-files zu einem kombinieren..? Allgemeine Java-Themen 3
B Öffnen und schließen von Pdf-Files Allgemeine Java-Themen 8
T Class-files zur Laufzeit zu Reflection-Zwecken laden Allgemeine Java-Themen 18
R in .jar werden files nicht gefunden!!! Allgemeine Java-Themen 5
N Fehler mit Jar-Files Allgemeine Java-Themen 9
J BufferedImage aus PNG Files haben keinen Type Allgemeine Java-Themen 4
U Properties in Jar Files Allgemeine Java-Themen 3
Developer_X Extract Zip Files with Java Allgemeine Java-Themen 21
N 2 files auf gleichheit vergleichen Allgemeine Java-Themen 5
A Get all Files in Workspace Allgemeine Java-Themen 9

Ähnliche Java Themen

Neue Themen


Oben