2013-03-19 3 views
0

Я работаю над своим приложением, основанным на World Wind Java SDK в Eclipse. Как две недели назад, я начал получать такие ошибки выброшены каждый раз, когда я пытаюсь запустить приложение:Ошибка за пределами JVM, брошенная при запуске приложения

фатальная ошибка была обнаружена с помощью Java Runtime Environment:

EXCEPTION_ACCESS_VIOLATION (0xc0000005) в pc = 0x1a97d42a, pid = 4136, tid = 4888 JRE версия: 6.0_31-b05 Java VM: виртуальная машина Java HotSpot (TM) (20.6-b01 смешанный режим windows-x86) Проблемный фрейм: C [ig4icd32.dll + 0x3d42a]

Файл с сообщением об ошибке с дополнительной информацией сохраняется как:
C: \ Тезис \ 100GreatP \ eclipse_ws \ тест \ hs_err_pid4136.log

Если вы хотите сообщить об ошибке, пожалуйста, посетите:
[URL] http://java.sun.com/webapps/bugreport /crash.jsp[/url] Авария произошла за пределами виртуальной машины Java в собственном коде. См. Проблемный кадр для сообщения об ошибке.

Самое смешное, что это происходит только тогда, когда я пытаюсь показать мой новоиспеченный право слоя при запуске приложения:

wwd.getModel().getLayers().add(GreatPlacesIcons); 
wwd.addSelectListener(GreatPlacesIcons); 
layers = new LayerViewDockable(wwd,"layers"); 

После того, как я сделать комментарий на этих строк кода выше, приложение запустится правильно. Кто-нибудь имеет представление о том, что здесь происходит?

+0

Похоже, что существует некоторая естественная ошибка, встречающаяся в API, используемом в этих трех строках кода, и она не обрабатывается надлежащим образом API (например, какое-то значение null в собственном коде или неверный указатель и т. Д.). Если у вас есть доступ ко всему коду (собственный код) API, вы можете отлаживать его или записывать ошибку в API – abhinav

+0

Вы создаете приложение Swing или приложение Eclipse RCP? –

+0

@TimBender - это приложение Swing. – MichalB

ответ

0

И, наконец, я решил свою проблему. Проблема заключалась в внешнем коде и Eclipse, проблема заключалась в определении одной из переменных среды JVM, CLASSPATH. Я понял это из файла журнала, вот его добыча:

В.М. Аргументы: jvm_args: -Dfile.encoding = CP1252 java_command: org.cnstar.wiki.app.GreatPlaces Launcher Тип: SUN_STANDARD

Переменные среды: JAVA_HOME = C: \ Program Files \ Java \ jre6 CLASSPATH =; C: \ Program Files \ Java \ jre7 \ lib; PATH = C:/Program Файлы/Java/jre6/bin/client; C:/Program Files/Java/jre6/bin; C:/Program Файлы/Java/jre6/lib/i386;

Переменная classpath указывала на jre7, однако это было не так, поскольку я не знал Java 7 несколько дней назад. И когда я запускал свое приложение, он автоматически проваливался. Поэтому я перешел в (Windows XP) Start -> Control Panels -> System -> Advanced -> Environment variables и изменил переменную CLASSPATH так, чтобы она указывала на jre6.

Смежные вопросы