2009-05-06 6 views
7

Ich benutze Eclipse 3.4.2 um meinen Code zu entwickeln. Im Rahmen meiner Projektdefinition referenziere ich eine Utility-Bibliothek, an die ich den Quellcode angehängt habe. So weit, so gut - ich kann diese Quelle sehen, wenn ich Klassen aus der Bibliothek erzähle und während ich debugge.Eclipse: Ist es möglich, Java Quellcode über den Anhang zu bearbeiten?

Jetzt möchte ich jedoch eine der Klassen ändern und dabei alle Funktionen des Eclipse-Java-Editors behalten (insbesondere Dinge wie QuickInfos und Quick-Fix). Diese Funktionen scheinen zu funktionieren, wenn ich die Quelle anschaue (ich kann STRG + LKlick durch Methodennamen für Beispiel), aber es ist schreibgeschützt. Auf der anderen Seite kann ich explizit die Quelldatei öffnen, die es mir erlaubt, sie zu bearbeiten, aber ich verliere alle "intelligenten" Bearbeitungsfunktionen.

Ich bin kürzlich von IntelliJ zu Eclipse gewechselt, wo das möglich war, also hoffe ich, dass es auch in Eclipse ist. Beachten Sie, dass obwohl ich den Code einfach als ein Projekt in meinen Arbeitsbereich aufnehmen könnte, würde ich es wirklich nicht tun. Der Arbeitsbereich ist bereits ziemlich groß und ich möchte Eclipse nicht weiter verlangsamen, indem ich Projekte hinzufüge, die ich selten jemals anfassen würde.

Antwort

7

Ich bin mir nicht sicher, ob ich Ihre Frage richtig verstanden habe. Wenn Sie eine vorkompilierte Bibliothek zum Build-Pfad Ihrer Projekte (JAR) hinzufügen und eine Quelle an diese JAR anhängen, zeigt Eclipse den Quellcode an, wenn Sie innerhalb der JAR auf eine Klasse klicken. Dasselbe gilt für den Debugger, mit dem Sie auch die Codezeilen in der Quelle durchlaufen können, wenn die Klassen in der JAR mit Zeilennummerninformationen kompiliert wurden.

Nun, was Sie zu tun scheinen zu wollen, ist, die Klassen innerhalb des JAR zu ändern (die Quellansicht ist nur ein Overlay, die auch ausgeschaltet sein kann, wenn Sie eine andere Version der Quelle anhängen), was nicht möglich ist, weil Sie sind im JAR-Archiv in Binärform verpackt - auch wenn Eclipse intelligent genug ist, sie einzeln anzuzeigen.

Ich vermute, Sie würden erwarten, dass Ihre Änderungen vom Debugger in das laufende Programm ausgetauscht werden. Dies kann nur durch eine Neukompilierung erfolgen, nachdem Sie Ihre Änderungen abgeschlossen haben. Normalerweise erledigt Eclipse das automatisch, wenn Sie eine Java-Quelldatei speichern. Da Ihre Quelldatei jedoch nicht Teil des Arbeitsbereichs ist (oder ein externer Ordner explizit als Java-Quelle deklariert ist), wird das Neukompilieren und Tauschen nicht durchgeführt.

Ich würde empfehlen, die Quelle Ihrer externen Bibliothek als ein Projekt in Eclipse und nicht über Leistung zu viel kümmern - ich arbeite mit 3.4.2 jeden Tag und mein Arbeitsbereich hat etwa 45 offene Projekte mit mehreren 10.000 Klassen und Millionen von Codezeilen. Ich weise der Eclipse-VM ein Gigabyte RAM zu und habe keine Probleme damit auf einem Core2Duo 2.6GHz-Rechner.

+0

Es ist nicht so sehr, dass ich erwarte, dass Eclipse "hot swap" alle Änderungen, die ich in das System mache, wenn ich es ausführe. Ich sage Eclipse, dass er die "gebaute" Form der Klassen aus diesem JAR bekommen soll und ich erwarte, dass es genau das tut (so wie es tut). Es ist wirklich nur ein Problem, all die "Unterstützung" zu haben, die der Java-Editor bietet, wenn ich beschließe, dass ich eine Klasse bearbeiten muss, die ich zufällig in Binärform eingefügt habe. Gut zu wissen, über die Größenbeschränkungen obwohl - unsere Code-Basis ist ungefähr das gleiche und es erstickt IntelliJ. – sfitts

+0

Fügen Sie den Quellcode einfach als separates Projekt zu Eclipse hinzu, und fahren Sie dann fort und bearbeiten Sie ihn weg –

Verwandte Themen