2010-07-03 19 views

Antwort

9

I Quellcode für ein Java-Produkt erhalten haben ...

Wenn Sie wirklich den Quellcode eines Produkts erhalten, und alles was du hast ist JAR-Dateien, dann die JAR-Dateien (Das sind eigentlich ZIP-Dateien mit einem anderen Datei-Suffix und einer bestimmten Art von "Manifest". sollte enthalten eine Reihe von Dateien mit dem Dateisuffix ".java". Sie sollten dies mit jedem ZIP-Archiv-Tool überprüfen können.

Wenn in den JARs keine ".java" -Dateien vorhanden sind (z. B. nur sehr viele ".class" - und andere Dateien), steht Ihnen der Quellcode für das Produkt nicht zur Verfügung. Änderungen vornehmen wird wirklich wirklich schwer, vorausgesetzt, dass Sie kein Java-Entwickler sind.

Angenommen, Sie tun dies legitim (d. H. Mit der ausdrücklichen oder impliziten Erlaubnis des Produktentwicklers) sparen Sie sich viel Zeit, wenn Sie auch erhalten können, um die Bauanleitungen des Produkts zu erhalten. Wenn es zum Beispiel mit Ant erstellt wird, möchten Sie die Datei "build.xml".

9

Ein Jar ist analog zu einer Zip-Datei, daher enthalten sie möglicherweise den Quellcode, den Sie für die Entwicklung benötigen. Sie können über JAR-Dateien here lesen.

+0

WinZip oder jeder andere Archivmanager kann .jar-Dateien öffnen. Möglicherweise müssen Sie für einige Archivierer die Erweiterung in .zip ändern. –

+2

* "Ein Jar ist analog zu einer Zip-Datei" * - eine JAR-Datei ** ist ** eine ZIP-Datei, die bestimmten Konventionen über den Archivinhalt folgt. –

5

Normalerweise packen Sie .class (kompilierte) Dateien und verteilen sie in .jar-Dateien, aber es ist möglich, jede Art von Datei (einschließlich Quellcode) in ein .jar-Archiv zu stellen. Wenn Sie den Code in der Bibliothek ändern müssen, müssen Sie die Quelle anzeigen.

Es ist auch möglich, dass die .jar-Dateien in Ihrem Projekt Bibliotheken von Drittanbietern (oder internen Bibliotheken) sind, die Sie gar nicht ändern müssen. Es ist durchaus üblich, Bibliotheken, die Sie gerade verwenden, ohne Änderungen in Ihrem Jar aufzunehmen. Wenn auf den Rest Ihres Anwendungscodes zugegriffen werden kann, können Sie dies einfach ändern, ohne den Bibliothekscode zu berühren.

+0

Wenn Gläser nur .class-Dateien enthalten, bedeutet das, dass ich die Anwendung nicht ändern kann? – SharpAffair

+2

Sie können weiterhin .class-Dateien ändern. Es ist nur eine ganze Welt der Verletzung schwerer. –

+0

@ Sphynx: Ja, wie bereits erwähnt, ist es möglich, aber unerschwinglich schwierig. Ich würde mich sehr anstrengen, den Quellcode in die Hand zu nehmen, bevor ich versuche, nur mit den .class-Dateien zu arbeiten. –

2

Jeder modern Java IDE ermöglicht es Ihnen, in JAR-Dateien und als Bibliotheks-Code verwenden, fallen zu lassen. Dies erfordert keine Quelle usw. Sie können dann neuen Code entwickeln, der Änderungen enthält.

Wenn Sie Code innerhalb der Gläser ändern müssen, wären Sie viel besser, wenn Sie den Quellcode für das Glas benötigen, den Sie aktualisieren müssen, und dann damit arbeiten.

Wenn Sie keinen Quellcode haben und eine Klasse ändern müssen, können Sie diese Klasse mit z. JAD zu einer Java-Datei (seien Sie vorsichtig, können Fehler enthalten), und arbeiten Sie dann damit. Sie müssen diese Klasse nur vor dem jar im Klassenpfad haben (es sei denn, das jar ist versiegelt und dann haben Sie eine ganz neue Frage für stackoverflow).

Haben Sie erfahrene Java-Programmierer in Ihrem Team haben, können Sie um Hilfe bitten?

0

Sie können versuchen, die JAR-Dateien zurück in ihre Quelle zu dekompilieren, sonst die Jar-Dateien werden nicht viel zur Entwicklung helfen.

jar Dateien können Ihnen jedoch helfen, wenn sie einige Bibliotheken/Pakete/Klassen enthalten, die Sie für ein Projekt, an dem Sie gerade arbeiten, unentbehrlich finden. Auf diese Weise können Sie sie Ihrem Kompilierpfad hinzufügen, wenn Sie Netbeans IDE verwenden und sie verwenden, ohne die Quelle zu sehen. Dies funktioniert jedoch am besten, wenn Sie eine Art inkrementelle Entwicklung für Ihr Projekt machen. so, es hängt in hohem Maße ab, wie Sie Ihre Software dh bauen ist es inkrementelle oder möchten Sie vielleicht ändern, was Sie ... erhalten für diese Sie könnten de-Sammlung betrachten oder für den Quellcode zu fragen

Verwandte Themen