2012-06-18 3 views
7

Mögliche Duplizieren:
How to determine which classes are used by a Java program?Export von runnable Java-Klasse .jar-Datei mit nur erforderlichen Abhängigkeiten

Ich habe ein Java-Projekt von Eclipse, die eine Menge von Java-Klassen enthält. Ich möchte einen von ihnen in eine .jar-Datei exportieren, aber ich stieß auf einige Probleme.

Ich las bereits durch einige bestehende Threads, aber ich habe nicht die richtige Antwort für meine Anforderung erhalten, denn:

Wenn ich „Export nach JAR-Datei“ ich die richtige Klasse exportiert, aber die Auswahl. Die JAR-Datei enthält nicht die erforderlichen Abhängigkeiten zum Ausführen der JAR-Datei.

Wenn ich "Export in Runnable JAR-Datei" wählen, enthält die resultierende JAR-Datei alle Abhängigkeiten, sondern fügt auch alle anderen Klassen aus dem gesamten Projekt (auch diejenigen, die ich nicht brauche).

Wie kann ich die einzelne Java-Klasse in eine JAR-Datei exportieren, die auch erforderliche Bibliotheken zum Ausführen der JAR-Datei enthält? Die resultierende JAR-Datei muss so klein wie möglich sein.

Vielen Dank.

+0

Sind Sie ein Glas oder runnable Glas in Eclipse zu erstellen benutzt du Maven? Checkout das [Assembly Plugin] (http://maven.apache.org/plugins/maven-assembly-plugin/) –

+0

Ich habe die gleiche Frage - Ich habe ein einfaches Programm geschrieben und mit all den commons Zeug, wiegt es über 3Meg ! Ich bin sicher, wenn ich das Glas nur mit den Klassen bauen könnte, die es tatsächlich benötigt, wäre es winzig. –

Antwort

1

Sie könnten ein neues Projekt mit nur der darin benötigten Klasse erstellen und dieses Projekt als ausführbares JAR exportieren.

+0

Das ist die Lösung für nur eine Datei, aber jedes Mal, wenn ich eine einzelne Klasse exportieren muss, muss ich ein neues Projekt erstellen. In einem großen Projekt könnte das viel Arbeit bedeuten. Oder selbst wenn ich nur eine Klasse brauche, aber diese Klasse andere Klassen aus dem Projekt benötigt, muss ich nach jeder benötigten Klasse suchen und sie in das neue Projekt verschieben. Warum gibt es keine automatische Möglichkeit, exportierte Anwendungen klein zu halten? – fachexot

0

Je nach dem Anwendungsfall, für den Sie dies benötigen, gibt es möglicherweise eine Problemumgehung. Im Allgemeinen ist eine vollständige Abhängigkeitsanalyse nicht möglich, da Ihr Code möglicherweise Klassen zur Laufzeit usw. lädt. Wenn Sie möchten, dass die .jars so klein wie möglich sind (z. B. wenn Sie Teile der Anwendung "anklicken" möchten) Abfalllagerung nicht redundant) Sie

Export... -> Runnable JAR File -> Copy required libraries into a sub-folder... 

Ameise verwenden könnten dann nur eine Kopie der externen Bibliotheken halten für alle Gläser. Bitte weitere Informationen zur Verfügung stellen, was Ihr Anwendungsfall ist, so dass wir mehr konkrete Antworten veröffentlichen können :)

+0

Der Anwendungsfall ist einfach. Ich habe ein Projekt, das aus vielen Frameworks (externe Bibliotheken, Quelldateien usw.) und vielen Klassendateien (einige davon mit einer Hauptmethode) besteht. Jetzt möchte ich jede der Klassen mit einer Hauptmethode in einer ausführbaren JAR-Datei exportieren. Dann möchte ich die Größe der verschiedenen Gläser quantifizieren. Wenn ich Export als ausführbare Jar-Datei verwende, fügt Eclipse ALLE Klassen des gesamten Projekts in diese JAR-Datei ein. Wenn ich nur Export-Jar verwende, enthält das exportierte Jar keine erforderlichen Bibliotheken usw. Ich weiß, dass das Projekt ein Chaos ist, aber ich habe es nicht implementiert, ich möchte es nur analysieren. – fachexot

0

die Sie interessieren, ist dies die Art und Weise

File -> Export-> Java ->Runnbale JAR file 

Launch configuration : your Class containing the public static void main(String[] args) 

Export destination : Target place 

Library Handling: 

Package required libraries into generated JAR 

FINISH 
+0

So mache ich das schon. Leider löst das mein Problem nicht, da das Runnable-Jar alle Dateien des gesamten Eclipse-Projekts enthält. – fachexot

+0

@fachexot Das gleiche Problem hier ... noch keine Lösung? – momomo

Verwandte Themen