webentwicklung-frage-antwort-db.com.de

Fehlende tools.jar im lokalen Repository bricht m2eclipse

Mein Problem ist, dass Eclipse keine Abhängigkeiten meines Projekts lösen kann. Dies führt zu Problemen, denn obwohl die Abhängigkeiten beim Codieren gut zu funktionieren scheinen (ich erhalte die automatische Vervollständigung), bekomme ich immer noch eine riesige Liste von Fehlern, die sich auf fehlende Artefakte beziehen.

Beim Filtern habe ich Folgendes gefunden:

Der Container 'Maven Dependencies' referenziert nicht vorhandene Bibliothek '/home/[..(//m2/repository/com/Sun/tools/1.5.0/tools-1.5.0.jar')

Es scheint, dass diese Abhängigkeit von struts2 eingeführt wurde, die in ihrem pom ein Profil wie folgt eingerichtet haben:

<dependency>
    <groupId>com.Sun</groupId>
    <artifactId>tools</artifactId>
    <version>1.5.0</version>
    <scope>system</scope>
    <systemPath>${Java.home}/../lib/tools.jar</systemPath>
</dependency>

Dieser Systempfad wird aufgelöst und daher sehe ich keinen Grund, warum dies Probleme verursachen würde. Gibt es in jedem Fall eine Möglichkeit, Eclipse mitzuteilen, dass diese m2Eclipse-Abhängigkeit eine Systemabhängigkeit ist, die nicht im lokalen Repository gefunden wird?

15
wds

Ich hatte das gleiche Problem und musste die folgenden Dinge tun

  • -Vm Pfad/zu/jdk/bin in Eclipse.ini Datei hinzugefügt
  • Bereinigen Sie den vorhandenen Arbeitsbereich und laden Sie das Projekt erneut.

Es hat für mich nahtlos funktioniert. 

Es lohnt sich hinzuzufügen, dass ich in meiner Eclipse.ini-Datei die Zeilen -vm ... am Anfang der Datei einfügen musste. mögen 

-vm
C:\Program Files\Java\jdk1.6.0_27\bin
... ... ...

Stellen Sie sicher, dass die Option -vm vor -vmargs platziert ist, da alles, nachdem -vmargs direkt an vm übergeben wurde, ausgewählt wird. 

21
Samiron

Ich hatte dieses Problem, aber ich habe es mit den folgenden Schritten behoben:

Fall 1:

Eclipse zeigt standardmäßig auf JRE, aber für das Eclipse-Maven-Plugin ist JDK erforderlich

Fenster -> Voreinstellungen -> Java -> Installierte JREs

Ändern Sie es in JDK

Folgen Sie den Schritten, um von JRE zu JDK zu wechseln

  1. Gehen Sie in Eclipse IDE zu: Window… Preferences… Installierte JREs
  2. Wählen Sie die standardmäßige JRE aus und klicken Sie auf Bearbeiten.
  3. Klicken Sie auf Externe Dose hinzufügen
  4. Ich habe tools.jar in "C:\Programme\Java\jdk1.6.0_22\lib" gefunden und hinzugefügt.

Jetzt kann ich mein Projekt ohne Probleme erstellen. Ist dies der richtige Weg, um dieses Problem zu lösen?

9

schließt Werkzeuge von der Strebenabhängigkeit aus.

<exclusions>
    <exclusion>
        <groupId>com.Sun</groupId>
        <artifactId>tools</artifactId>
    </exclusion>
</exclusions>
5
Sudheera

Ich hatte das gleiche Problem - Eclipse konnte keine tools.jar finden. Wie ich herausfand, war der Grund, dass Eclipse eine JRE und keine JDK verwendete. Sie müssen der Eclipse.ini einen Parameter -vm hinzufügen, der auf Ihr binäres JDK-Verzeichnis verweist: 
... 
- vm 
Pfad_zu_jdk\bin 
...

Dies sollte das Problem beheben.

5
Eugene

Laden Sie http://repository.ops4j.org/maven2/tools/tools/1.5.0/ Herunter und legen Sie das Glas in den C:\Documents and Settings\Administrador\.m2\repository\com\Sun\tools\1.5.0. Viel Glück.

3
user1396892

Sie müssen sicherstellen, dass Eclipse mithilfe von JDK-Installationen ist.

In Eclipse IDE gehen Sie zu Window/Preferences/Java/Installed JREs Auf eine JDK-Installation.

Zum Beispiel: C:\Program Files (x86)\Java\jdk1.6.0_37

3
Mojtaba

Ich habe das gelesen und verschiedene Dinge ausprobiert. Was für mich funktionierte, war folgendes: Ich änderte die Fenster -> Einstellungen -> Java -> installierte JREs, um stattdessen auf das JDK zu zeigen. Das hat dieses Problem gelöst. 

2
Ranga Nathan
<dependency>
   <groupId>com.Sun</groupId>
   <artifactId>tools</artifactId>
   <version>1.6.0</version>
   <scope>system</scope>
   <systemPath>${env.Java_HOME}/lib/tools.jar</systemPath>
 </dependency>

Fügen Sie einfach das hinzu. Es wird klappen.

1
zorze

So seltsam das auch klingen mag, ich habe dieses Problem gelöst, indem ich mich einfach mit dem SVN-Repository neu synchronisierte.

Die Sache ist, ich habe den gesamten Arbeitsbereich von einem anderen PC übernommen. Wenn ich also das Maven-Projekt mit dem m2e-Plugin importierte, synchronisierten sich einige Abhängigkeiten möglicherweise nicht richtig.

Ich poste dies nur für den Fall, dass jemand mit diesem Fehler verzweifelt ist und alle Möglichkeiten ausprobiert.

1
Edu Castrillon

Ich hatte auch ein ähnliches Problem und behebte es folgendermaßen. Gehen Sie in der Eingabeaufforderung zum lib-Verzeichnis des installierten JDK-Pfads. Führen Sie den folgenden Befehl aus, um die Installation von tools.jar zu installieren.

$mvn install:install-file -DgroupId=Sun.jdk -DartifactId=tools \
     -Dpackaging=jar -Dversion=1.6 -Dfile=tools.jar
1

In jedem Projekt, das Sie in Eclipse importieren, erstellt Eclipse einige Dateien im Dateisystem - .project, .classpath, einen Ordner. Es scheint, dass Eclipse diese nicht korrekt aktualisiert.

Löschen Sie diese und importieren Sie sie erneut. 

Offensichtlich funktioniert diese Problemumgehung nicht, wenn dies Ihr erster Import ist und Sie bereits Probleme haben. Dann schau hier nach Maven2: Artefakt fehlt, aber Gläser sind vorhanden

1
Amio.io

Diese Abhängigkeit sollte wie erwartet funktionieren. Probieren Sie im Zweifelsfall die Befehlszeilenversion von Maven aus, da das Eclipse-Plugin in Bezug auf die Abhängigkeitsauflösung sehr spröde ist.

Im Gegensatz zu anderen Teilen von Eclipse ist es nicht möglich, auch nur einen teilweisen Klassenpfad für das Build zu erstellen, wenn mit dem POM etwas nicht stimmt. Der Fehler könnte also etwas anderes sein.

Wenn alles andere fehlschlägt, versuchen Sie die Datei in Ihrem lokalen Repository zu installieren, damit Sie den nächsten Fehler sehen können. 

0
Aaron Digulla

Für Mac-Benutzer

[1] Um herauszufinden, wo sich Ihr VM befindet, geben Sie Folgendes ein: /Usr/libexec/Java_home

[2] vi ./Eclipse.app/Contents/MacOS/Eclipse.ini

[3]
-vm
/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/bin/ 
-vmargs ........ ........

[4] In Eclipse Update Maven 

[5] sing alles ist gut :-) 

0

Ich fand schließlich heraus, was es verursachte. Anscheinend ist es ein Fehler in m2Eclipse, wenn Sie maven1-Repositorys verwenden. Ich hatte immer noch das Java.net maven1-Repository in meinem Pom; nach dem deaktivieren funktioniert alles wieder. Ein sehr ärgerliches Problem zu finden, weil es am Ende nichts mit dem Finden des Werkzeugbehälters zu tun hatte.

0
wds

Dieses Problem aufgrund einer falschen Java-Konfiguration. Jedes IDE benötigte ein vollständiges JDK-Paket. becuase tools.jar verfügbar in JDK lib nicht jre lib 

  1. wechseln Sie zu Control Panel, um die Umgebungspfadvariable in C:\Programme\Java\jdk1.8.0_31\jre\bin zu ändern.

  2. Ändern Sie Java_HOME in C:\Programme\Java\jdk1.8.0_31.

  3. Öffnen Sie IDE (Eclipse oder STS), und ändern Sie die JRE-Systembibliothek in C:\Programme\Java\jdk1.8.0_31

starten Sie dann die IDE neu. es wird klappen 

0
sampath peyyila

Ich hatte das gleiche Problem mehrmals und konnte es mit zwei Schritten beheben:

  1. Ich habe "-vm C: \\ bin" zu Eclipse.ini oder zu dem Link hinzugefügt, von dem aus ich Eclipse ausführt. 
  2. Nachdem ich dieses Problem viele Male hatte, begann ich zu ahnen, dass es einige m2Eclipse-Cache-Speicher gibt, die nach einiger Zeit neu geladen werden (einen Tag oder so). Daher versuchte ich eine seltsame Lösung: Die Computerzeit vorübergehend auf den folgenden Tag ändern und Eclipse neu starten oder das Projekt schließen/säubern und .... ES ARBEITET !!! 

Ich konnte den Vorgang mehrmals erfolgreich wiederholen. 

Eine elegantere Lösung (ich hatte bisher noch nicht die Möglichkeit, es auszuprobieren), könnte die unter https://stackoverflow.com/a/16444984 genannten m2Eclipse-Caches löschen. 

Ich hoffe, das hilft jedem.

0
Jorge

Eine hackige Lösung, die für mich funktioniert hat:

Wenn m2e sich darüber beklagt, dass das folgende jar nicht im Maven-Cache gefunden wird (den fehlerhaften Pfad finden Sie im Fehlerprotokoll der POM-Datei oder in der Liste "Java Build Path> Maven Dependencies"):

${HOME}/.m2/repository/jdk/tools/jdk.tools/1.6/jdk.tools-1.6.pom

probieren Sie dann den folgenden Befehl aus (geben Sie Java_VERSION_HERE für ein installiertes JDK ein, z. B. jdk1.8.0_191-AMD64. Verwenden Sie dann die beiden Pfadabschnitte nach .m2/repository/ oben, um die korrekte groupId zu ermitteln, und ersetzen Sie 1.6 durch die Version, die m2e darüber beschwert Möglicherweise ist es nicht wichtig, ob das installierte JDK der Version entspricht, über die sich m2e beschwert.):

mvn install:install-file -Dfile=/usr/Java/JAVA_VERSION_HERE/lib/tools.jar \
    -DgroupId=jdk.tools -DartifactId=jdk.tools -Dpackaging=jar -Dversion=1.6

Mit diesem Befehl wird tools.jar aus Ihrem JDK kopiert und in den Maven-Cache gestellt. Außerdem wird eine pom.xml-Datei erstellt, die von Maven verwendet werden kann.

0
Luke Hutchison