2016-08-12 3 views
2

An meinem Arbeitsplatz musste ich ein Projekt in Eclipse mit git herunterladen. Es stellt sich heraus, Eclipse zeigt Fehler beim Import ("Der Import kann nicht gelöst werden."). Das Projekt benötigt JARs, die in Maven Dependencies enthalten sind.Klasse kann nicht aus JAR importiert werden, obwohl JAR sie enthält (Eclipse)

Ich suchte den Inhalt von JARs und sie scheinen zu enthalten, was gesucht wird (Bild # 2 com.sun.jna.Native). Noch interessanter ist, dass eine Klasse aus dem problematischen JAR importiert wird, so dass das Projekt die Existenz dieser JARs kennt (com.sun.jna.platform.win32.WinUser).

Ich habe versucht, Import selbst zu importieren und sehen, wie weit Tipphilfe gehen kann. Ich kam zu "com.sun.jna", konnte aber keinen ".Native" -Teil finden. Ich nehme an, es ist ein Problem mit meinen Projekt-Build-Optionen oder Eclipse-Einstellungen, da mein Kollege den Code ohne Probleme ausführen kann. Ich benutze Eclipse Neon.

Vielen Dank, dass Sie sich die Zeit genommen haben, mein Problem zu lesen.

Bilder angehängt:

  1. Überblick Problem.
  2. Gesuchte Klassen sind in JARs enthalten.
  3. Mit Tipps, wie weit ich auf der Suche nach gesuchten Elementen gehen kann. (Zu geringe Reputation zum Posten)

Ps. Ich bin ein noob

demo

demo

Edit 1: ich einen Versuch zu aktualisieren POM Abhängigkeiten gab. Zwei Jars, die ich gerne in mein Projekt importieren könnte, sind jna-4.1.0.jar und jna-platform-4.1.0.jar, da sie die Probleme zu verursachen scheinen.

Für Abhängigkeiten Details ging ich hier: http://mvnrepository.com/artifact/net.java.dev.jna/jna/4.1.0 http://mvnrepository.com/artifact/net.java.dev.jna/jna-platform/4.1.0

Ich habe zwei Einträge in Abschnitt Abhängigkeiten pom.xml.

<dependency> 
<groupId>net.java.dev.jna</groupId> 
<artifactId>jna</artifactId> 
<version>4.1.0</version> 
</dependency> 

<dependency> 
<groupId>net.java.dev.jna</groupId> 
<artifactId>jna-platform</artifactId> 
<version>4.1.0</version> 
</dependency> 

Nach ctrl + s ich Fehler habe: Das Projekt nicht seit seinem Build-Pfad errichtet wurde, ist unvollständig. Die Klassendatei für com.sun.jna.platform.win32.WinDef kann nicht gefunden werden.

Fehler werden immer noch dort erkannt, wo sie zuvor erkannt wurden.

Edit 2:

Nicht sicher, ob Fehler vollständig gelöst ist, aber es scheint so. Ich kann die Schritte, die ich unternommen habe, um das Problem zu lösen, nicht vollständig wiederherstellen. Irgendwann habe ich angefangen, nach dem Zufallsprinzip viele Dinge zu klicken. Ich glaube es war Rechtsklick auf Projekt -> Maven → Installieren. Dabei wurden viele Dinge auf die Konsole gedruckt und darunter befand sich ein Loc-Header-Fehler. Nach einigen Anweisungen löschte ich bereits heruntergeladene JAR auf meinem Computer und benutzte Maven, um sie erneut zu laden (indem ich zu dem Ordner gehe, der die Pom-Datei von der maven-Konsole enthält). Redownload das Problem behoben.

Entschuldigung, ich kann keine Schritt-für-Schritt-Lösung bieten, aber es gab eine Menge zufälliger Klicken beteiligt und es war ziemlich lange her.Danke allen für ihre Hilfe.

+0

Ist das Glas in Ihrem Build-Pfad in Eclipse? Überprüfen Sie die Unterschiede zwischen Ihren Projektdateien und den Projektdateien Ihrer Kollegen. – ManoDestra

+0

Für welches JDK ist Ihr Projekt konfiguriert? Ist es die gleiche Version wie Ihr Kollege? –

+0

Ergebnisse von "java -version" Java-Version "1.8.0_101" Java (TM) SE Laufzeitumgebung (Build 1.8.0_101-b13) Java HotSpot (TM) 64-Bit-Server-VM (Build 25.101-b13, gemischt Modus) t4u

Antwort

1

Das Problem ist mit Ihren Paketen eingerichtet, Ihre Klasse kann das Glas in der Verpackung nicht finden. Wenn es sich um ein Maven-Projekt handelt (wie Sie es schon sagten), können Sie die Pom-Datei erstellen (oder bearbeiten), um die Abhängigkeiten für jedes verwendete jar zu berücksichtigen. Dann brauchst du sie nicht einmal anhängen, es wird es für dich tun. Wenn Sie das bereits getan haben und es immer noch nicht funktioniert, überprüfen Sie Ihre Versionsnummern. Möglicherweise haben Sie die falsche Versionsnummer und versuchen, ein Jar zu verwenden, das nicht mehr das enthält, was Sie importieren. Sie verwenden die Maven central repository, suchen Sie Ihren Jar-Namen und finden Sie die richtige Versionsnummer. Sie fügen sie nach den </build> aber vor dem </project> Registerkarte in Ihrer pom.xml-Datei und folgen dieser Struktur für jedes Glas:

</build> 
    <dependencies> 
    <dependency> 
     <groupId>com.blahblah</groupId> 
     <artifactId>desktopBlah</artifactId> 
     <version>1.0.0.1-SNAPSHOT</version> 
    </dependency> 
    ...more dependencies listed her.... 
    </dependencies> 
    </project> 
+0

Gut gemacht! Ich hatte einen Hinweis auf das installierte Glas als lokales Maven-Repository, z. 'file: // $ {project.basedir}/build-repo', aber das war nicht genug. Durch Hinzufügen der Abhängigkeit wurde das fehlende Paket aufgelöst. –

0

Für jna nativen Klassen, können Sie den entsprechenden DLLs in dem Pfad (% PATH haben müssen % Variable) neben dem Jar im CLASSPATH.

Verwandte Themen