4 Stimmen

Wie kann ich eclipse JDT-Klassen in ein Projekt importieren

Ich möchte die folgenden Importe in einer Klasse durchführen.

import org.eclipse.jdt.core.dom.*;  
import org.eclipse.jdt.core.compiler.CharOperation;  
import org.eclipse.jdt.core.compiler.IProblem;  
import org.eclipse.jdt.internal.compiler.ClassFile;  
import org.eclipse.jdt.internal.compiler.CompilationResult;  
import org.eclipse.jdt.internal.compiler.Compiler;    
import org.eclipse.jdt.internal.compiler.DefaultErrorHandlingPolicies;  
import org.eclipse.jdt.internal.compiler.ICompilerRequestor;  
import org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader;  
import org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException;  
import org.eclipse.jdt.internal.compiler.env.ICompilationUnit;  
import org.eclipse.jdt.internal.compiler.env.INameEnvironment;  
import org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer;  
import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;  
import org.eclipse.jdt.internal.compiler.problem.DefaultProblemFactory;  
import org.eclipse.jface.text.Document;  
import org.eclipse.jface.text.BadLocationException;  
import org.eclipse.text.edits.TextEdit;  

Wie kann ich das JDT in Eclipse importieren? Zum Wohl!

0 Stimmen

Hat eine der Lösungen für Sie funktioniert? Ich bin neugierig, was Sie am Ende gemacht haben.

0 Stimmen

Werden Sie schon eine Antwort akzeptieren? Oder hat keine von ihnen funktioniert? Wenn ja, dann kommentieren Sie bitte diese Antworten oder bearbeiten Sie Ihre Frage, um zu erklären, warum die Antworten nicht funktionieren.

15voto

delfuego Punkte 13864

Ich glaube, ich habe einen einfacheren Weg gefunden, dies zu tun:

  • Klicken Sie mit der rechten Maustaste auf Ihr Projekt im Package Explorer;
  • wählen Sie "Build Path...";
  • wählen Sie "Build-Pfad konfigurieren";
  • wählen Sie die Registerkarte Bibliotheken;
  • klicken Sie auf die Schaltfläche "Variable hinzufügen...";
  • Wählen Sie im Listenfeld den Eintrag "ECLIPSE_HOME" und klicken Sie dann auf die Schaltfläche "Erweitern";
  • Öffnen Sie im Listenfeld den Eintrag "plugins", scrollen Sie ganz nach unten und klicken Sie mit gedrückter Umschalttaste auf alle org.eclipse.jdt.* JAR-Dateien, die sich in der Dateiliste befinden unter den Ordnern;
  • Klicken Sie auf OK, bis Sie wieder ganz draußen sind.

Das sollte genügen.

0 Stimmen

Das könnte eine Eclipse-Migration nicht überleben, da Sie Ihrem Klassenpfad versionsspezifische JDT-JAR-Dateien hinzufügen werden.

0 Stimmen

JDT kann in einer eigenständigen Anwendung verwendet werden, aber es ist eine gute Praxis, es in einem Plug-in zu verwenden. Denn Sie benötigen häufig auch Java Model, das nur in einem Plug-in unterstützt wird.

0 Stimmen

Ich habe die jar-Dateien in meinem lokalen P2-Repository gefunden: z. B. %USERPROFILE%\.p2\pool\plugins

3voto

delfuego Punkte 13864

Wenn ich Sie nicht falsch verstehe, müssen Sie nur die JDT-JAR-Dateien in Ihren Klassenpfad aufnehmen; sie sind alle in Ihrem Eclipse-Plugins-Verzeichnis verfügbar. Klicken Sie also für Ihr Projekt mit der rechten Maustaste auf den Projektnamen im Package Explorer, gehen Sie zum Untermenü Build Path... und wählen Sie Configure Build Path. Auf der Registerkarte Bibliotheken fügen Sie dann über die Schaltfläche Externe JARs hinzufügen" alle relevanten JAR-Dateien aus dem Eclipse-Plugins-Verzeichnis hinzu.

0 Stimmen

Gibt es eine Möglichkeit, den gesamten Pfad von Eclipse zum Klassenpfad und/oder Buildpfad hinzuzufügen und nicht jedes einzelne Jar hinzuzufügen?

1 Stimmen

Siehe meine nächste Antwort - ich glaube, ich habe einen einfacheren Weg gefunden.

2voto

jamesh Punkte 19377

Wenn Sie Plugins für Eclipse schreiben, sollten Sie nicht wirklich versuchen, die Instantiierung der internal Pakete. Demnach API-Regeln für den Einsatz

Halten Sie sich an offiziell dokumentierte APIs. Verweisen Sie nur auf Pakete, die in der veröffentlichten API-Javadoc für die Komponente dokumentiert sind. Verweisen Sie niemals auf ein Paket, das zu einer anderen Komponente gehört, die "intern" in ihrem Namen hat - dies sind niemals API. Verweisen Sie niemals auf ein Paket, für das es kein veröffentlichtes API-Javadoc gibt - auch dies ist keine API.

Für die anderen fügen Sie den Paketnamen in die Import-Package Eintrag in Ihrem Manifest.

Es gibt zwar Erweiterungspunkte in der JDT, aber wenn das, was Sie tun wollen, außerhalb dieser Punkte liegt, dann haben Sie leider Pech.

Wenn Sie nur einen Compiler in Ihrem Code verwenden wollen, ohne sich auf das JDK zu verlassen (d.h. auf eine JRE), dann würde ich in Erwägung ziehen, einen eigenständigeren Java-basierten Java-Compiler zu verwenden, wie Janino .

1voto

Fabian Steeg Punkte 43903

Wenn Sie diese Klassen benötigen, befinden Sie sich wahrscheinlich bereits in einem Plug-in-Projekt. Sie sollten in der Lage sein, diese Klassen zu importieren, indem Sie den Quickfix "Fix project setup..." (Strg+1) auf die Zeile anwenden, in der Eclipse sich über die Importe beschwert. Dadurch werden die benötigten Plug-ins zu Ihrer MANIFEST.MF-Datei im META-INF-Verzeichnis hinzugefügt (in Ihrem Fall org.eclipse.jdt.core und org.eclipse.jface.text). Sie können sie auch manuell in Ihre MANIFEST.MF-Datei einfügen. Wenn Ihr Projekt kein Plug-in-Projekt ist (und Sie keine MANIFEST.MF-Datei haben), können Sie es konvertieren, indem Sie zunächst mit der rechten Maustaste auf das Projekt klicken -> PDE Tools -> Convert Projects to Plug-in Project. Wenn Sie Abhängigkeiten zu Plug-in-Projekten auf normale Weise hinzufügen ("configure build path"), wird das Classloading zur Laufzeit nicht richtig funktionieren (obwohl es kompiliert wird).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X