Hi Darryl, et. al.
I finally got the awt bridge to build, and there weren't any errors that I
could find. However, when I tried to use it in a test, I got this:
java.lang.NoClassDefFoundError: com/trolltech/qt/osinfo/OSInfo
at
com.trolltech.research.qtjambiawtbridge.generated.QtJambi_LibraryInitializer.<clinit>(QtJambi_LibraryInitializer.java:9)
at
com.trolltech.research.qtjambiawtbridge.generated.QComponentHostNative.<clinit>(QComponentHostNative.java:11)
at elsetplot.MainWindow.plotData(MainWindow.java:394)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at
com.trolltech.qt.internal.QSignalEmitterInternal$AbstractSignalInternal.emit_helper(QSignalEmitterInternal.java:368)
at com.trolltech.qt.QSignalEmitter$Signal2.emit(QSignalEmitter.java:227)
at elsetplot.PlotControls.executePlot(PlotControls.java:1069)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at
com.trolltech.qt.internal.QSignalEmitterInternal$AbstractSignalInternal.emit_helper(QSignalEmitterInternal.java:368)
at com.trolltech.qt.QSignalEmitter$Signal1.emit(QSignalEmitter.java:209)
at com.trolltech.qt.gui.QDialog.__qt_exec(Native Method)
at com.trolltech.qt.gui.QDialog.exec(QDialog.java:92)
at elsetplot.MainWindow.plotControls(MainWindow.java:381)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at
com.trolltech.qt.internal.QSignalEmitterInternal$AbstractSignalInternal.emit_helper(QSignalEmitterInternal.java:368)
at com.trolltech.qt.QSignalEmitter$Signal1.emit(QSignalEmitter.java:209)
at com.trolltech.qt.gui.QApplication.exec(Native Method)
at elsetplot.MainWindow.main(MainWindow.java:95)
Caused by: java.lang.ClassNotFoundException: com.trolltech.qt.osinfo.OSInfo
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 27 more
Exception caught after invoking slot
java.lang.UnsatisfiedLinkError:
com.trolltech.research.qtjambiawtbridge.generated.QComponentHostNative.__qt_QComponentHostNative_QWidget(J)V
at
com.trolltech.research.qtjambiawtbridge.generated.QComponentHostNative.__qt_QComponentHostNative_QWidget(Native
Method)
at
com.trolltech.research.qtjambiawtbridge.generated.QComponentHostNative.<init>(QComponentHostNative.java:20)
at
com.trolltech.research.qtjambiawtbridge.QComponentHost.<init>(QComponentHost.java:69)
at
com.trolltech.research.qtjambiawtbridge.QComponentHost.<init>(QComponentHost.java:65)
at elsetplot.MainWindow.plotData(MainWindow.java:394)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at
com.trolltech.qt.internal.QSignalEmitterInternal$AbstractSignalInternal.emit_helper(QSignalEmitterInternal.java:368)
at com.trolltech.qt.QSignalEmitter$Signal2.emit(QSignalEmitter.java:227)
at elsetplot.PlotControls.executePlot(PlotControls.java:1069)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at
com.trolltech.qt.internal.QSignalEmitterInternal$AbstractSignalInternal.emit_helper(QSignalEmitterInternal.java:368)
at com.trolltech.qt.QSignalEmitter$Signal1.emit(QSignalEmitter.java:209)
at com.trolltech.qt.gui.QDialog.__qt_exec(Native Method)
at com.trolltech.qt.gui.QDialog.exec(QDialog.java:92)
at elsetplot.MainWindow.plotControls(MainWindow.java:381)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at
com.trolltech.qt.internal.QSignalEmitterInternal$AbstractSignalInternal.emit_helper(QSignalEmitterInternal.java:368)
at com.trolltech.qt.QSignalEmitter$Signal1.emit(QSignalEmitter.java:209)
at com.trolltech.qt.gui.QApplication.exec(Native Method)
at elsetplot.MainWindow.main(MainWindow.java:95)
ElsetPlot: unknown error caught-
java.lang.NullPointerException
at elsetplot.MainWindow.reDrawPlot(MainWindow.java:422)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at
com.trolltech.qt.internal.QSignalEmitterInternal$AbstractSignalInternal.emit_helper(QSignalEmitterInternal.java:368)
at com.trolltech.qt.QSignalEmitter$Signal0.emit(QSignalEmitter.java:193)
at elsetplot.PlotControls.executePlot(PlotControls.java:1071)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at
com.trolltech.qt.internal.QSignalEmitterInternal$AbstractSignalInternal.emit_helper(QSignalEmitterInternal.java:368)
at com.trolltech.qt.QSignalEmitter$Signal1.emit(QSignalEmitter.java:209)
at com.trolltech.qt.gui.QDialog.__qt_exec(Native Method)
at com.trolltech.qt.gui.QDialog.exec(QDialog.java:92)
at elsetplot.MainWindow.plotControls(MainWindow.java:381)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at
com.trolltech.qt.internal.QSignalEmitterInternal$AbstractSignalInternal.emit_helper(QSignalEmitterInternal.java:368)
at com.trolltech.qt.QSignalEmitter$Signal1.emit(QSignalEmitter.java:209)
at com.trolltech.qt.gui.QApplication.exec(Native Method)
at elsetplot.MainWindow.main(MainWindow.java:95)
Have you seen errors like this before?
-Doug
________________________________
From: Darryl Miles <darryl-mailingli...@netbauds.net>
To: doug brann <dorsal_f...@yahoo.com>
Cc: Ivan Brezina <ibre5...@ibrezina.net>; Frank T. Bergmann
<fberg...@caltech.edu>; "qt-jambi-interest@qt.nokia.com"
<qt-jambi-interest@qt.nokia.com>
Sent: Tuesday, 16 October 2012 7:59 AM
Subject: Re: [Qt-jambi-interest] Jambi 4.7 release can't find
com_trolltech_research_qtjambiawtbridge_generated.pri
doug brann wrote:
> When you run vcvars32.bat, it seems to set the envs in quote marks ("
> "). I guess in Windows, that's how you tell the OS to read spaces as
> part of a path. Frank reminded me of this over the weekend.
I don't see any extra quote marks myself in my environment (when I run command
"set"). Maybe you have ended up putting quote marks into the value of the
envvar; which would be an error.
Using:
set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_35
with the spaces as written make the value correct as viewed by 'set' command
allowing you do to: dir "%JAVA_HOME%"
Doing:
set JAVA_HOME="C:\Program Files\Java\jdk1.6.0_35"
Running the command 'dir %JAVA_HOME%' will now work but the command 'dir
"%JAVA_HOME%"' will not work. But it working does not mean it is correct. The
quote marks end up in the value, this is bad.
This is standard Windows quirkiness, not really a QtJambi issue.
Generally speaking there should not be any quotation marks visible in the
output of 'set'. If you see quote marks then that is an area to look at fixing.
> Anyhow, I did that part, I was able to build any version of Jambi that
> had a build.bat in it.
All those versions are incompatible with the awtbridge you are using.
> I had to make some slight mods to the awtbridge
> build.bat to look for stuff in Jambi in the correct directory (instead
> of src/cpp, just cpp -- that kind of thing). Once I did that, I was off
> and running. But I stumbled pretty quickly when I tried to use the
> generator (also in a different directory) on typesystem_qawt.xml I still
> don't have a clue how to get past that. Is something wrong with
> generator? Has anyone seen that error before?
>
> c:\qt-jambi-dlmiles-qtjambi-community-awtbridge>"C:\qt-jambi-qtjambi-4_7\generator\release\generator.exe"
> "--include-paths=C:\qt-jambi-dlmiles-qtjambi-community-awtbridge;C:\qt-jambi-qtjambi-4_7\generator\;C:\qt-jambi-qtjambi-4_7\generator\typesystem;C:\qt-jambi-qtjambi-4_7\generator\parser\;C:\qt-jambi-qtjambi-4_7\generator\rpp;C:\qt-jambi-qtjambi-4_7\cpp;C:\Program
> Files (x86)\Java\jdk1.6.0_27\include\;C:\Program Files
> (x86)\Java\jdk1.6.0_27\include\win32;c:\Program Files (x86)\Microsoft
> Visual Studio 9.0\VC\INCLUDE;C:\Program Files\Microsoft
> SDKs\Windows\v6.0A\include;c:\Program Files (x86)\Microsoft Visual
> Studio 9.0\VC\INCLUDE;C:\Program Files\Microsoft
> SDKs\Windows\v6.0A\include;"
> "--qt-include-directory=C:\Qt\4.6.2\include"
> "--input-directory=C:\qt-jambi-dlmiles-qtjambi-community-awtbridge;C:\qt-jambi-qtjambi-4_7\build\generator;C:\qt-jambi-qtjambi-4_7\generator"
> "--output-directory=C:\qt-jambi-dlmiles-qtjambi-community-awtbridge\build"
> global.h typesystem_qawt.xml
> Fatal error: line=1, column=1, message=unexpected end of file
>
> Fatal error: line=2, column=63, message=Failed to parse:
> 'typesystem_core.xml'
Well for a start I don't think generator supports "--include-paths" option in
tree 'qt-jambi-qtjambi-4_7' and I'm not sure what generator does with command
line options it does not understand.
From the output above it looks to have interpreted the 3 options
--qt-include-directory --input-directory --output-directory as paths to files.
Like I say you are pretty much on your own when trying to use tree
'qt-jambi-qtjambi-4_7'. There isn't any additional assistance I can provide
with the combination.
Building QtJambi on windows:
vcvars32.bat
git clone on qtjambi-community
cd C:\qtjambi-buildtree
set QTDIR=C:\QtSDK\Desktop\Qt\4.7.4
set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_35
REM - Install and setup Apache ANT in %PATH%
REM - Edit *.properties files to suit
ant init.build
REM - TAKE A LOOK AT THE OUTPUT FROM THE LAST COMMAND
ant all tests.compile
REM - NEXT STEP IS OPTIONAL RUNNING UNIT TESTS
ant tests.run
git clone on awtbridge (keep environment as above) :
cd C:\qtjambi-awtbridge
set JAMBIDIR=C:\qtjambi-buildtree
REM - TAKE A LOOK AT build.bat WORK THROUGH COMMENTS AND FIXUP
REM - IN PARTICULAR %JAMBIDIR% and %AWTBRIDGEDIR%
build.bat
The AWT tree is a work in progress and anyone looking at it is expected to have
an understanding of what is going on during the build process.
At some point in the future I expect an ant/maven/gradle buildtool making it
easier to digest and configure itself (like the main QtJambi project does).
Worse case scenario run each command manually in the build.bat from the command
line.
Darryl
_______________________________________________
Qt-jambi-interest mailing list
Qt-jambi-interest@qt.nokia.com
http://lists.qt.nokia.com/mailman/listinfo/qt-jambi-interest