Я пытаюсь запустить слегка измененную версию this Qt Jambi Hello World example, но я столкнулся с NullPointerException, транслируемым до моей самой первой строки кода. Единственный способ, которым это было бы возможно, казалось бы, если QApplication имеет значение NULL, но он находится на моем пути сборки, и мой код компилируется.NullPointerException from java.lang.J9VMInternals
Сначала я задавался вопросом, был ли пустой указатель отсутствием конструктора, но добавление результата все еще приводит к ошибке. Теперь мне интересно, не потому ли, что, вероятно, некоторые JNI (Java Native Access) работают за кулисами, чтобы заставить Qt Jambi работать, или, несмотря на компиляцию (в Eclipse), среда IDE по-прежнему не выполняет основной метод файла правильно.
Это для Java 1.6 на Windows 7
приписка: woudn't вы знаете, это работает отлично с помощью 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();
}
}
СТЕК 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)
Затмения 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>
Можете ли вы попытаться запустить это в командной строке? – Viruzzo
Я думаю, что добавление конфигурации запуска в Eclipse имеет тот же самый существенный эффект, что и запуск из командной строки –
Можете ли вы понять, какую версию Qt Jambi вы используете? Я думаю, 4.6.3 msvc2005 для Windows 32 бит. Вы загрузили этот источник? –