java - fehlercode exception_access_violation beheben




Mögliche Ursachen für Java VM EXCEPTION_ACCESS_VIOLATION? (4)

Als erstes sollten Sie Ihre JVM auf den neuesten Stand bringen.

Können Sie das Problem wiederholen? Oder scheint es zufällig zu passieren? Wir hatten kürzlich ein Problem, bei dem unsere JVM zu zufälligen Zeiten überall hin zusammenbrach. Es stellte sich heraus, dass es ein Hardwareproblem war. Wir haben die Laufwerke in einen neuen Server gesteckt und es ist komplett verschwunden.

Unterm Strich sollte die JVM niemals abstürzen, wie oben auf dem Poster erwähnt, wenn Sie keine JNI machen, dann ist mein Bauchgefühl, dass Sie ein Hardwareproblem haben.

Wenn eine Java-VM mit einer EXCEPTION_ACCESS_VIOLATION abstürzt und eine hs_err_pidXXX.log-Datei erzeugt, was bedeutet das? Der Fehler selbst ist im Grunde eine Nullzeiger-Ausnahme. Wird es immer durch einen Fehler in der JVM verursacht, oder gibt es andere Ursachen wie fehlerhafte Hardware- oder Softwarekonflikte?

Edit: Es gibt eine native Komponente, dies ist eine SWT-Anwendung auf Win32.


Antwort gefunden!

Ich hatte den gleichen Fehler und bemerkte, dass andere, die den Inhalt der PID-Protokolldatei zur Verfügung stellten, 64-Bit-Windows verwendeten. Genau wie ich. In der Endprotokolldatei enthielt es die PATH-Anweisung. Dort konnte ich sehen, C: \ Windows \ SysWOW64 wurde falsch vor:% SystemRoot% \ system32 aufgeführt. Sobald ich es korrigiert habe, ist die Ausnahme verschwunden.


Ich habe das gleiche Problem mit einer JNLP-Anwendung, die ich seit langem verwende und ziemlich zuverlässig ist. Das Problem begann unmittelbar nach dem Upgrade von Windows 7 auf Windows 10. Nach meiner Untersuchung handelt es sich höchstwahrscheinlich um einen Fehler in Win 10.

Das Folgende ist keine Lösung, sondern ein hässlicher Workaround. Im Verzeichnis jre / bin befindet sich javaws.exe . Wenn ich mit der rechten Maustaste auf / Eigenschaften / Kompatibilität klickte und dieses Programm als Administrator ausführte, begann die JNLP-App zu arbeiten.

Bitte beachten Sie, dass dieser Ansatz zu Sicherheitsproblemen führen kann und nur verwendet werden kann, wenn Sie keine andere Option haben und 100% wissen, was Sie tun.


Meistens ist das ein Fehler in der VM. Aber es kann durch jeden nativen Code (zB JNI-Aufrufe) verursacht werden.

Die Datei hs_err_pidXXX.log sollte einige Informationen darüber enthalten, wo das Problem aufgetreten ist.

Sie können auch den Abschnitt "Heap" in der Datei überprüfen. Viele der VM-Fehler werden durch die Speicherbereinigung verursacht (besonders in älteren VMs). Dieser Abschnitt sollte Ihnen anzeigen, ob der Müll zum Zeitpunkt des Absturzes ausgeführt wurde. Auch dieser Abschnitt zeigt, wenn einige Teile des Heaps gefüllt sind (die Prozentzahlen).

Die VM ist auch viel wahrscheinlicher in einer Situation mit wenig Speicher als sonst.





swt