NullPointerException от java.lang.J9VMInternals - PullRequest
0 голосов
/ 19 января 2012

Я пытаюсь запустить слегка модифицированную версию этого примера Qt Jambi Hello World , но я сталкиваюсь с исключением NullPointerException, которое можно отследить до самой моей первой строки кода.Казалось бы, единственный способ сделать это, если QApplication имеет значение null, но он находится на моем пути сборки, и мой код компилируется.

Сначала я задавался вопросом, был ли нулевой указатель моим отсутствием конструктора, но добавление его по-прежнему приводит к ошибке.Теперь мне интересно, может быть, потому, что за кулисами работает какой-то JNI (Java Native Access), чтобы заставить работать Qt Jambi, или, несмотря на то, что, несмотря на компиляцию (в Eclipse), IDE все еще не выполняет корректно метод main файла.

Это для Java 1.6 в Windows 7

POSTSCRIPT: Неужели вы не знаете, что он работает нормально с использованием NetBeans?Спасибо всем, кто ответил или прокомментировал.

КОД:

import com.trolltech.qt.gui.*;

public class EcosDesk {
    public static void main(String args[]) {
        if(args == null) args = new String[0]; //suggested addition
        QApplication.initialize(args);

        QPushButton hello = new QPushButton("Hello World!");
        hello.show();

        QApplication.exec();
    }
}

STACK TRACE:

Exception in thread "main" java.lang.NullPointerException
at java.lang.J9VMInternals$1.run(J9VMInternals.java:273)
at java.security.AccessController.doPrivileged(AccessController.java:202)
at java.lang.J9VMInternals.cloneThrowable(J9VMInternals.java:248)
at java.lang.J9VMInternals.copyThrowable(J9VMInternals.java:289)
at java.lang.J9VMInternals.initialize(J9VMInternals.java:179)
at java.lang.J9VMInternals.initialize(J9VMInternals.java:167)
at java.lang.J9VMInternals.initialize(J9VMInternals.java:167)
at com.motion.ecos.EcosDesk.main(EcosDesk.java:7)

ECLIPSE'S classpath.xml:

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" path="src"/>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
    <classpathentry kind="lib" path="C:/Users/dp078008/Downloads/qtjambi-4.6.3-win32/qtjambi-4.6.3/qtjambi-4.6.3.jar"/>
    <classpathentry kind="lib" path="C:/Users/dp078008/Downloads/qtjambi-4.6.3-win32/qtjambi-4.6.3/qtjambi-win32-msvc2005-4.6.3.jar"/>
    <classpathentry kind="output" path="bin"/>
</classpath>

1 Ответ

2 голосов
/ 19 января 2012

Возможно, что args на самом деле null, потому что вы неправильно настроили его в Конфигурации запуска в Eclipse

...