2016-08-08 7 views
-1

Ich habe einen Java-Prozess, den ich starten und für mehrere Tage laufen lassen. Die Protokolle für diesen Prozess sahen bis zum Ende der Lebenszeit des Prozesses gut aus, wo ich die folgenden zwei Zeilen und dann nichts danach sehe.'std :: bad_alloc' in Java-Programm

Es sollte eine Abschaltlogik geben, die ausgeführt wird, wenn der Prozess endet, aber diese beiden Protokollzeilen sind alles, was ich sehe.

Was ist die Ursache für diesen std::bad_alloc Fehler? Ich habe einige andere Beiträge in Bezug auf diesen Fehler gesehen, aber sie stammen alle von C++ - Programmierern, während ich Java und nicht C++ verwende. Bedeutet dies einen Fehler in der JVM oder ist es eine Folge eines JVM-bezogenen Fehlers, z. B. eines OutOfMemoryError?

+0

ist Ihr Code einig DLLs oder ähnlichen Libs geschrieben in C/C++ ?? –

+0

klingt wie ein kleines Speicherleck und das Betriebssystem sagt jvm gab es ein Problem beim Versuch, Speicher zuzuordnen. – Javant

Antwort

1

Sie haben keinen nativen Speicher mehr (der sich vom Java-Heap unterscheidet). Um dies zu beheben, müssen Sie verstehen, welcher Code von Ihnen (oder Jars auf Ihrem Klassenpfad) C++ unter der Haube verwenden und sicherstellen, dass die Dinge rechtzeitig aktualisiert werden.

Zum Beispiel, wenn Sie nicht in der Nähe forderten würden Sie möglicherweise in die gleiche Ausgabe führen: https://docs.oracle.com/javase/7/docs/api/java/util/zip/GZIPInputStream.html#close()

+0

Ist es C++ Ich hätte gedacht, dass es c – Javant

+0

C hat keinen Scope-Auflösung-Operator – amos

Verwandte Themen