Domanda

Sto cercando di eseguire una versione leggermente modificata di Questo esempio di Qt Jambi Hello World Ma incontro un nullpointerException tracabile alla mia prima riga di codice. L'unico modo in cui sarebbe possibile sembrerebbe essere se la Qapplication fosse nullo, ma è sul mio percorso di build e il mio codice compila.

All'inizio mi chiedevo se il puntatore nullo fosse la mia mancanza di un costruttore, ma aggiungendo uno si traduce ancora nell'errore. Ora mi chiedo se è perché probabilmente c'è un po 'di JNI (Accesso nativo di Java) in corso dietro le quinte per far funzionare Qt Jambi, o se nonostante la compilazione (in Eclipse), l'IDE non sta ancora eseguendo correttamente il metodo principale del file.

Questo è per Java 1.6 su Windows 7

PostScript: non sai che funziona bene usando NetBeans. Grazie a tutti coloro che hanno risposto o commentato.

CODICE:

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>

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top