Ein JNI-Fehler ist aufgetreten. Überprüfen Sie Ihre Installation und versuchen Sie es erneut in Eclipse x86 Windows 8.1

8
%Vor%

}

Der obige Code funktioniert perfekt auf dem Laptop meines Freundes und wirft diesen Fehler auf meinen Laptop. Ich habe den Code auf Eclipse Juno mit Java 7 ausgeführt. Ich habe auch viele Java-Programme auf meinem Laptop getestet und ausgeführt, alles funktioniert gut. Dies ist das einzige Programm, das einen solchen Fehler verursacht. Dies ist mein letztes Jahr Projekt und ich brauche es auf meinem Laptop zu arbeiten, ich werde jedem dankbar sein, der hilft

    
Jash Parekh 13.03.2014, 14:09
quelle

15 Antworten

11

Kurze Antwort: Klicken Sie mit der rechten Maustaste auf die Klasse, die die Hauptmethode enthält. Klicken Sie auf "Ausführen als". Klicken Sie auf "Java-Anwendung". Die Tastenkombination lautet: Umschalt + Alt + X J (halten Sie Shift und Alt gedrückt, drücken Sie X; lassen Sie dann Shift und Alt los und drücken Sie J).

Lange Antwort: Um ehrlich zu sein, ich bin mir nicht 100% sicher, warum dieses Problem passiert. Es könnte daran liegen, eine andere jdk zu verwenden. Ich hatte denselben Fehler. Die Lösung war einfacher als das, was ich mir vorgestellt hatte. Ich war es gewohnt, meinen Code mit Strg + F11 auszuführen. Aber als ich es als Java-Anwendung (wie ich in "kurze Antwort" beschrieben) lief, wurde das Problem gelöst. Ich bin mir nicht sicher, ob es auch die Probleme anderer Menschen löst, aber es lohnt sich, es zu versuchen. :)

    
Navid Vafaei 20.07.2015 18:28
quelle
4

Ich hatte ähnliche Probleme bei der Verwendung von "Java" am Anfang des Paketnamens, z. java.jem.pc

Überprüfen Sie Ihre Konsolenausgabe, die ich erhalten habe: Ausnahme im Thread "main" java.lang.SecurityException: Verbotener Paketname: java.jem.pc

    
CoDeSigns 19.10.2016 23:02
quelle
3

Ich sah mich auch demselben Problem gegenüber. Indem ich auf die Konsole schaue, die sagt

  

java.lang.SecurityException Problem.

Die Lösung ist:

  

Überprüfen Sie den Paketnamen Ihres Projekts.

Ich hoffe, Ihr Problem wird gelöst. Wenn nicht, dann drucken Sie bitte Ihre Konsolen-Trace zur Verfolgung der Ursache.

    
user3852778 16.01.2017 23:48
quelle
3

Fehler: Ein JNI-Fehler ist aufgetreten. Bitte überprüfen Sie Ihre Installation und versuchen Sie es erneut in Eclipse

Lösung: Überprüfen Sie Ihren Paketnamen, da er mit dem Paketnamen in Java kollidieren kann. Ändern Sie einfach den Paketnamen, um das Problem zu lösen. :)

    
user8472395 16.08.2017 12:01
quelle
3

In meinem Fall wurde das Problem durch die JDK-Version verursacht. Um dies zu lösen, schlage ich vor, in deine Pom-Datei zu gehen und das <jdk.version>1.7</jdk.version>.

zu überprüfen

Überprüfen Sie anschließend die Java-Version in Ihrem cmd (Windows) oder Terminal (OSX oder LINUX), indem Sie Folgendes eingeben: java -version .

Vergleichen Sie die Version, die in der Terminal \ Eingabeaufforderung angezeigt wird, mit der in Ihrer Pom-Datei enthaltenen Version. Stellen Sie sicher, dass sie gleich sind. Führen Sie dann Ihr Projekt erneut aus.

    
DvixExtract 13.10.2017 23:01
quelle
1

Sie können zuerst die Konsole überprüfen, um die tatsächliche Fehlermeldung anzuzeigen, und dann fortfahren, indem Sie nach Antworten für diesen Fehler suchen.

Meine Konsole zeigt den Fehler NoClassDefFound für die Klasse jcommander an. Ihr Fehler wird wahrscheinlich von meinem abweichen. Die Ursache meines Fehlers ist, dass die Klasse jcommander nicht in meinem M2-Repository ist, also muss ich diese Abhängigkeit nur in meiner pom.xml hinzufügen. Sie können überprüfen, ob alle Klassenabhängigkeiten deklariert und in Ihrem aktuellen Konfigurations- und Projektaufbau hinzugefügt wurden.

NoClassDefFoundError

    
Miguel Ormita 23.11.2016 09:11
quelle
1

Das kann passieren, wenn die JDK-Version anders ist.

Versuche das mit maven:

%Vor%

unter Build- & gt; Plugins:

%Vor%     
erank 12.06.2017 15:13
quelle
1

Überprüfe deine Konsole. Es sagt java.lang.SecurityException Problem. Ändern Sie Ihren 'Paketnamen'. Ich änderte meinen Paketnamen von "java.assessment" in "assesment" und es funktionierte für mich. Wenn jemand die Ursache kennt, lass es mich bitte wissen.

    
Keshav Bisarwal 03.07.2017 07:07
quelle
0

Ich hatte ein ähnliches Problem und bekam die Lösung im Paketnamen. Ich behielt den Paketnamen als java.basics. In der Konsole habe ich einen Hinweis dafür bekommen, da es eindeutig verbotenen Paketnamen sagte. Also änderte ich den Paketnamen und es funktionierte.

    
H S Rathore 09.04.2016 20:20
quelle
0

Bearbeiten Sie den ".classpath" und fügen Sie unter

ein

<classpathentry kind="con" path="org.testng.TESTNG_CONTAINER"/>

Dies könnte Ihr Problem lösen.

    
Bheemashankar Pattar 05.08.2017 05:54
quelle
0

Ich hoffe, das hilft jemand anderem. Ich habe damit gelitten, als ich vor ein paar Jahren an einem Projekt gearbeitet habe, und dann ist ein Job in einem neueren Projekt vor ein paar Tagen gescheitert. Ich fand diesen Post und versuchte mich daran zu erinnern, was ich in meinem Projekt geändert hatte und dann erinnerte ich mich daran, dass ich meinen Maven Pom geändert und den Eintrag für Maven-Jar-Plugin entfernt hatte. Wenn Sie ein Jar erstellen, dessen Zweck es ist, ausführbar zu sein, müssen Sie dies einschließen, damit bestimmte Einträge in das Manifest geschrieben werden. Ich habe das alte Projekt geöffnet, diesen Eintrag kopiert (mit einigen Änderungen für den Projektnamen) und es hat funktioniert.

    
Eric Forte 19.10.2017 19:36
quelle
0

Ich denke, das passiert, weil der Name Ihrer Klasse der gleiche Name einer anderen Klasse im JDK ist. Helfen Sie Eclipse, um zu bestimmen, welche Sie versuchen zu laufen, indem Sie das Paket auswählen, in dem sich Ihre Klasse befindet. Wechseln Sie zu run configuration und wählen Sie das Projekt und die Hauptklasse aus.

Wenn Sie die Suchschaltfläche drücken, um die Hauptklasse auszuwählen, finden Sie Optionen, die denselben Namen haben aber anderes Paket , wählen Sie Ihre Klasse aus.

    
Mohamed Abdelmagid 02.02.2018 07:44
quelle
0

MÖGLICHE LÖSUNG Wenn KEINE dieser Lösungen für Sie funktionierte, versuchen Sie dies ... Ich habe endlich meine Arbeit durch Löschen der beiden Ordner ".metadata" & amp; ".recommenders" im Arbeitsbereichsordner. Sie können Ihren Arbeitsbereich Ordnerpfad finden, indem Sie auf "Datei" & gt; "Arbeitsbereich wechseln" & gt; "Andere" in der Symbolleiste der Eclipse-Anwendung klicken.

Jetzt bin ich ein kompletter Noob, der mir den Weg durch einen SE-Abschluss an der San Jose State University schreit. Also teile ich nur, was für mich funktioniert hat, ohne genau zu wissen, warum. Ich weiß nicht, was Schaden oder Kopfschmerzen oder sogar, wenn beide oben genannten Ordner gelöscht werden mussten. Aber am Ende funktionierte es für mich und es scheint, dass die Anwendung nur frische Versionen dieser Ordner sowieso neu erstellt.

    
Muhammad Soroya 28.02.2018 04:55
quelle
0

Mein Problem kam von dem Versuch, die Maven-Natur aus meinem Projekt zu entfernen und dann die pom.xml -Datei zu löschen. Das ist schlecht, sehr schlecht, mach das nicht. Wenn Sie dies tun, ändern Sie es wieder in ein Maven-Projekt und hoffentlich können Sie entweder Ihre alte pom.xml -Datei wiederherstellen oder eine neue erstellen. Sobald ich das getan habe, hat es wieder funktioniert.

    
Chris C 23.03.2018 19:11
quelle
0

Es gab keine Informationen in meiner Konsole, so dass ich auf der Suche nach zusätzlichen Lösungen suchte und diese fand - einzigartig für die hier vorgestellten Lösungen. Ich begegnete diesem Problem mit Eclipse Oxygen, das versuchte, einen alten Ant-Build auf einem Projekt auszuführen.

Ursache 1 Ich hatte Eclipse so konfiguriert, dass eine externe Ant-Installation der Version 1.10.2 verwendet wurde, die offensichtlich Klassen enthielt, die mit JDK 9 kompiliert wurden. In Eclipse habe ich den oben beschriebenen JNI-Fehler erhalten (das Ausführen des Ant-Builds in der Befehlszeile gab mir den Befehl) bekannte "nicht unterstützte Major.Minor Version" -Fehler - das Java, das ich auf dem System verwendete, war JDK 8).

Die Lösung bestand darin, zu der eingebetteten Eclipse-Version von Ant zurückzukehren, die 1.10.1 ist. Ich habe dies als die richtige Lösung verifiziert, indem ich Ant 1.10.1 separat heruntergeladen und Eclipse neu konfiguriert habe, um das neue 1.10.1 extern zu verwenden, und es funktionierte immer noch.

Ursache 2 Dies kann auch passieren, wenn Sie die Einstellungen für Ant Runtime in den Voreinstellungen von Eclipse falsch konfiguriert haben. Abhängig von der Version von Ant, die Sie ausführen, müssen Sie die Datei tools.jar aus dem entsprechenden JDK zum Klassenpfad hinzufügen, der für die Ant-Laufzeit (Home-Einträge) verwendet wird. Genauer gesagt, ohne eine korrekte Konfiguration wird Eclipse beim Start eines Ant-Ziels beschweren, dass die JRE-Version weniger als eine bestimmte erforderliche Version ist.

Im Wesentlichen bedeutet "korrekte Konfiguration", dass jedes der Konfigurationselemente in Eclipse für die Ausführung von Ant so ausgerichtet wird, dass alle zusammenarbeiten. Dies beinhaltet den Eintrag Ant Runtime Home (muss auf eine Ant-Version verweisen, die mit dem gewählten JDK kompatibel ist - Ant kann nicht mit JDK 8 ausgeführt werden, wenn es mit JDK 9 kompiliert wurde); Angabe der tools.jar , die zu dem JDK gehört, mit dem Ant in den Ant-Laufzeiteinstellungen ausgeführt werden soll; und schließlich setzen Sie die JRE-Umgebung Ihres Build-Skripts auf das JDK, mit dem Ant in der Konfiguration externer Tools ausgeführt werden soll. Alle drei dieser Einstellungen müssen übereinstimmen, um den oben beschriebenen Fehler zu vermeiden. Sie müssen außerdem die Attribute berücksichtigen, die in Ihrem javac -Tag verwendet werden, um sicherzustellen, dass das von Ihnen verwendete JDK so ausgeführt werden kann, wie Sie es angewiesen haben (dh JDK 7 kann keinen Code mit Quell- und Zielversion 8 kompilieren).

Außerdem Wenn Sie wirklich nur versuchen, ein Ant-Build-Skript auszuführen, um Code für ein älteres JDK zu kompilieren (z. B. weniger als 8 für Oxygen), hat dieser Artikel dazu beigetragen, Zugriff auf Ant gegen ein älteres JDK ausführen . Es gibt Ant-Plugin-Ersetzungen für eine Handvoll Versionen von Eclipse, die Anweisungen sind kurz und es ist wichtig, die richtige Plugin-Version für Ihr bestimmtes Eclipse zu erhalten.

Oder einfacher Sie können diese sehr gute Lösung verwenden, um Ihre Legacy-Kompilierung durchzuführen Es ist nicht erforderlich, das Eclipse-Plug-in zu ersetzen, sondern das javac -Tag in Ihrem Build-Skript zu ändern (bei Verwendung des neuesten JDK).

    
dan 27.03.2018 19:20
quelle

Tags und Links