Wie gebe ich einer JAR-Datei im Eclipse-Klassenpfad Priorität?

7

Es gibt eine Klassendatei TagAttributeInfo , die sich unter zwei meiner jar-Dateien befindet.

%Vor%

Nun muss ich diese Klasse von j2ee-6.1.jar aufrufen, aber in Laufzeit nimmt sie die Klasse von servlet-api-2.3.jar , was ich nicht will. Kann mir jemand helfen, die JAR-Datei im Klassenpfad zu priorisieren, so dass ich j2ee-6.1.jar die erste Priorität gebe.

    
BOSS 30.09.2011, 08:32
quelle

7 Antworten

14

Sie verschieben es in der Klassenpfad-Reihenfolge (klicken Sie mit der rechten Maustaste auf das Projekt, wählen Sie Build Path, gefolgt von Configure Build Path und dann Order and Export)

    
Aravind R. Yarram 30.09.2011, 08:36
quelle
6
  • Gehen Sie in Ihre Projekteigenschaften & gt; Erstellen Sie Pfad .
  • Suchen Sie auf der Registerkarte Sortieren und Exportieren j2ee-6.1.jar und drücken Sie die Taste Hoch , um sie in der Reihenfolge des Klassenpfads nach oben zu verschieben. Halten Sie Hoch gedrückt, bis er über servlet-api-2.3.jar .
  • steht
  • Drücken Sie abschließend OK .
dogbane 30.09.2011 08:38
quelle
3

Das erste Jar, das auf dem Klassenpfad mit der gesuchten Klasse gefunden wird, wird verwendet. So können Sie Ihre Klasse priorisieren, indem Sie ihr Jar an den Anfang des Klassenpfads setzen.

Wie genau Sie das in Eclipse tun würden Ich bin mir nicht sicher, aber es gibt wahrscheinlich eine Liste von Projektabhängigkeiten, die den Gläsern auf dem Klassenpfad entsprechen, und hoffentlich können Sie die Elemente auf dieser Liste bestellen und Ihr Glas auf die oben. Versuchen Sie, in den Projekteinstellungen zu suchen.

    
Nate W. 30.09.2011 08:35
quelle
3
  1. Entfernen Sie servlet-api-2.3.jar, Sie brauchen es nicht.
  2. oder j2ee-6.1.jar höher als servlet-api-2.3.jar in der lib-Liste verschieben.
ControlPower 30.09.2011 08:44
quelle
1

Ich weiß nicht, ob es Teil der Spezifikation ist, aber die "höhere" Priorität jar früher auf dem Klassenpfad funktioniert, wenn ich das in der Vergangenheit getan habe.

    
Mike Q 30.09.2011 08:35
quelle
1

Sind Sie sicher, dass Sie beide JAR-Dateien benötigen?

Wie auch immer, im Dialogfeld "Pfad erstellen" können Sie die Reihenfolge für die zu durchsuchenden JAR-Dateien festlegen.

    
Thilo 30.09.2011 08:37
quelle
1

Nur eines dieser Jars sollte sich in Ihrem Klassenpfad befinden, damit Sie Ihre Klassen kompilieren können. Zur Laufzeit befindet sich der Jar jedoch in Ihrem Klassenpfad des Anwendungsservers und Sie können ihn nicht durch den anderen ersetzen.

Wenn Ihr Container ein JEE6-Container ist, verwendet er Servlet 3.0 und das Servlet-api-2.3.jar ist veraltet und sollte nicht im Klassenpfad sein. Wenn Ihr Container nur Servlet API 2.3 unterstützt, können Sie keine Klassen aus dem Jee6-Jar in diesem Container verwenden.

    
JB Nizet 30.09.2011 08:57
quelle

Tags und Links