Выполнение останавливается во всплывающем окне с ошибкой времени выполнения Microsoft Visual C++

Проект, в котором я сейчас участвую, использует JavaCv/OpenCv для распознавания лиц. Поскольку OpenCv иногда выдает ошибку, а распространение ошибок OpenCv/C++ в исключения Java еще не полностью функционально, это означает сбой основного цикла Java без возможности восстановления.

Тем не менее, код дает в основном точные результаты, и, поскольку мы запускаем его в большой базе данных, я испек быстрый пакетный сценарий вокруг выполнения, чтобы он продолжался, а код Java внутренне управляет id, чтобы убедиться, что он продолжается с только после того, как он разбился.

:RETRY
java -Xmx1024m -jar Main.jar
IF ERRORLEVEL 1 GOTO RETRY
EXIT 0

Однако иногда я получаю всплывающее окно с ошибкой выполнения, как показано ниже:

Библиотека времени выполнения Microsoft Visual C++

Ошибка выполнения!

Программа: C:\Windows\System32\java.exe

Это приложение запросило необычное завершение среды выполнения. Пожалуйста, свяжитесь со службой поддержки приложения для получения дополнительной информации.

В этот момент выполнение кода останавливается до тех пор, пока не будет нажато всплывающее окно, что действительно раздражает, поскольку это означает, что мой код не может работать без моего присмотра за ним.

Я нашел этот вопрос, который в основном задает одно и то же. Для этого вопроса существует принятое решение, но поскольку я Я не работаю напрямую с C++, я не понимаю, как я могу это реализовать.

Есть ли пакетное решение этой проблемы? Есть ли решение на уровне Java/JavaCv для обнаружения ошибок C++, исходящих от OpenCv? Любое другое решение?


person wen    schedule 08.08.2011    source источник
comment
На данный момент я думаю о том, чтобы отключить автоматический кликер, но, если не считать того, что компьютер становится бесполезным, это было бы самым уродливым решением, которое я когда-либо использовал.   -  person wen    schedule 08.08.2011
comment
... Я сейчас использую автокликер.   -  person wen    schedule 10.08.2011


Ответы (1)


Интересный вопрос. Java.exe зависит от одной или нескольких библиотек DLL Visual C++ (например, MSVCRT.DLL, msvcr90.dll и т. д.). Вероятно, файл JAR вызывает Java.exe, чтобы вызвать эту ошибку. Java.exe должен вызывать какую-то функцию CRT, которая вызывает исключение и, следовательно, ошибку времени выполнения.

Лучшее, что вы можете сделать, это запустить процесс, дождаться появления этой ошибки, а затем запустить Process Explorer. и просмотреть стек вызовов. Тем не менее, решение этого вопроса, скорее всего, находится вне вашего контроля. Может быть, последняя версия Java может помочь.

person Ajay    schedule 08.08.2011
comment
Не может ли быть так, что реализация OpenCv 2.3.0 для Windows зависит от некоторых библиотек DLL Visual C++? (Потому что это оставило бы мне шанс в бою...) Я попробую, спасибо! :) - person wen; 09.08.2011
comment
Это возвращает меня к Java.exe. Может быть, это неразрешимо? :( - person wen; 10.08.2011
comment
Я не Java-парень, поэтому я не могу больше вникать в это. Вы можете сообщить об этом людям Java... - person Ajay; 10.08.2011