Es gibt eine Klassendatei TagAttributeInfo
, die sich unter zwei meiner jar-Dateien befindet.
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.
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)
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
. OK
. 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.
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.