0

うーん.....これは私の最初のQTJambiアプリケーションであり、ウィンドウを表示するための試みにすぎません。
これは私が使用したターミナルコマンドです:

java -XstartOnFirstThread -cp qtjambi-4.6.3.jar:qtjambi-examples-4.6.3.jar:qtjambi-macosx-gcc-4.6.3.jar:。GUI

ちなみに、私はMacBookでMac OS XLion64ビットを実行しています。
上記のコマンドの結果は次のとおりです。

スレッド「main」の例外java.lang.ExceptionInInitializerErroratcom.trolltech.qt.gui.QApplication。(QApplication.java:12)at GUI.main(GUI.java:9)原因:java.lang.RuntimeException:読み込み中ライブラリが失敗しました。これまでのところ進行中です:.jarファイルの解凍:'qtjambi-macosx-gcc-4.6.3.jar'アーカイブのチェック'qtjambi-macosx-gcc-4.6.3.jar' --cache key ='gcc-20100817-1815 '-ライブラリマップに'libQtCore.4.dylib'を追加します-ライブラリ:name ='lib / libQtCore.4.dylib'、-ライブラリマップに' libQtGui.4.dylib'を追加します-ライブラリ:name ='lib/libQtGui。 4.dylib'、-ライブラリマップに' libQtXml.4.dylib'を追加-ライブラリ:name ='lib / libQtXml.4.dylib'、-ライブラリマップに' libQtSql.4.dylib'を追加-ライブラリ:name = ' lib / libQtSql.4.dylib'、-追加'libQtSvg.4.dylib'をライブラリマップに-library:name ='lib / libQtSvg.4.dylib'、-' libQtHelp.4.dylib'をライブラリマップに追加-library:name ='lib / libQtHelp.4.dylib ' 、-ライブラリマップに「libQtScript.4.dylib」を追加します-ライブラリ:name ='lib / libQtScript.4.dylib'、-ライブラリマップに「libQtScriptTools.4.dylib」を追加します-ライブラリ:name ='lib/libQtScriptTools。 4.dylib'、-ライブラリマップに' libQtMultimedia.4.dylib'を追加-ライブラリ:name ='lib / libQtMultimedia.4.dylib'、-ライブラリマップに' libQtNetwork.4.dylib'を追加-ライブラリ:name = ' lib / libQtNetwork.4.dylib'、-ライブラリマップに' libQtOpenGL.4.dylib'を追加-ライブラリ:name ='lib / libQtOpenGL.4.dylib'、-ライブラリマップに'libQtWebKit.4.dylib'を追加-ライブラリ:name = 'lib / libQtWebKit.4.dylib'、-ライブラリマップに' libQtXmlPatterns.4.dylib'を追加-ライブラリ:name ='lib / libQtXmlPatterns.4.dylib'、-ライブラリマップに'libphonon.4.dylib'を追加-ライブラリ:name ='lib / libphonon.4.dylib'、-ライブラリマップに'libQtDBus.4.dylib'を追加-ライブラリ:name ='lib / libQtDBus.4.dylib'、-ライブラリ:name ='plugins / phonon_backend / libphonon_qt7.dylib'、ロードしない-ライブラリ:name ='plugins / imageformats / libqjpeg.dylib'、ロードしない-ライブラリ:name ='plugins / imageformats / libqgif.dylib'、ロードしない-ライブラリ:name ='plugins / imageformats /libqmng.dylib'、ロードしない-ライブラリ:name ='plugins / imageformats / libqtiff.dylib'、ロードしない-ライブラリ:name ='plugins / imageformats / libqsvg.dylib'、ロードしない-ライブラリ:name ='plugins / iconengines / libqsvgicon.dylib'、ロードしない-ライブラリ:name ='plugins / codecs / libqcncodecs.dylib'、ロードしない-ライブラリ:name ='plugins / codecs / libqjpcodecs.dylib'、ロードしない-ライブラリ:name = 'plugins / codecs / libqkrcodecs.dylib'、ロードしない-ライブラリ:name ='plugins / codecs / libqtwcodecs.dylib'、ロードしない-ライブラリ:name ='plugins / accessible / libqtaccessiblewidgets.dylib'、ロードしない-ライブラリ:name ='plugins / sqldrivers / libqsqlite.dylib'、ロードしない-ライブラリマップに'libqtjambi.jnilib'を追加-ライブラリ:name ='lib / libqtjambi.jnilib'、-ライブラリマップに'libcom_trolltech_qt_core.jnilib'を追加-ライブラリ:name ='lib / libcom_trolltech_qt_core.jnilib'、-ライブラリマップに'libcom_trolltech_qt_gui.jnilib'を追加-library:name = 'lib / libcom_trolltech_qt_gui.jnilib'、

  • ライブラリマップに「libcom_trolltech_qt_xml.jnilib」を追加
  • ライブラリ:name ='lib / libcom_trolltech_qt_xml.jnilib'、
  • ライブラリマップに「libcom_trolltech_qt_sql.jnilib」を追加
  • ライブラリ:name ='lib / libcom_trolltech_qt_sql.jnilib'、
  • ライブラリマップに「libcom_trolltech_qt_svg.jnilib」を追加
  • ライブラリ:name ='lib / libcom_trolltech_qt_svg.jnilib'、
  • ライブラリマップに「libcom_trolltech_qt_help.jnilib」を追加
  • ライブラリ:name ='lib / libcom_trolltech_qt_help.jnilib'、
  • ライブラリマップに「libcom_trolltech_qt_script.jnilib」を追加
  • ライブラリ:name ='lib / libcom_trolltech_qt_script.jnilib'、
  • ライブラリマップに「libcom_trolltech_qt_scripttools.jnilib」を追加
  • ライブラリ:name ='lib / libcom_trolltech_qt_scripttools.jnilib'、
  • ライブラリマップに「libcom_trolltech_qt_multimedia.jnilib」を追加
  • ライブラリ:name ='lib / libcom_trolltech_qt_multimedia.jnilib'、
  • ライブラリマップに「libcom_trolltech_qt_network.jnilib」を追加
  • ライブラリ:name ='lib / libcom_trolltech_qt_network.jnilib'、
  • ライブラリマップに「libcom_trolltech_qt_opengl.jnilib」を追加
  • ライブラリ:name ='lib / libcom_trolltech_qt_opengl.jnilib'、
  • ライブラリマップに「libcom_trolltech_qt_phonon.jnilib」を追加
  • ライブラリ:name ='lib / libcom_trolltech_qt_phonon.jnilib'、
  • ライブラリマップに「libcom_trolltech_qt_webkit.jnilib」を追加
  • ライブラリ:name ='lib / libcom_trolltech_qt_webkit.jnilib'、
  • ライブラリマップに「libcom_trolltech_qt_xmlpatterns.jnilib」を追加
  • ライブラリ:name ='lib / libcom_trolltech_qt_xmlpatterns.jnilib'、
  • ライブラリマップに「classes.nib」を追加
  • ライブラリ:name ='lib / Resources / qt_menu.nib / classes.nib'、
  • ライブラリマップに「info.nib」を追加
  • ライブラリ:name ='lib / Resources / qt_menu.nib / info.nib'、
  • 'keyedobjects.nib'をライブラリマップに追加
  • ライブラリ:name ='lib / Resources / qt_menu.nib / keysedobjects.nib'、
  • プラグインパス='プラグイン'
  • キャッシュディレクトリの使用:'/var/folders/4p/s98fh7114t5g3y05fh59ctpm0000gn/T/QtJambi_b-dahse_x86_64_4.6.3_gcc-20100817-1815'
  • キャッシュディレクトリが存在しますライブラリを読み込んでいます:'libQtCore.4.dylib' .. ..
  • 展開仕様を使用する
  • わかった!ライブラリを読み込んでいます:'libqtjambi.jnilib' .. ..
  • 展開仕様を使用する
  • わかった!ライブラリを読み込んでいます:'libQtCore.4.dylib' .. ..
  • すでにロードされています、スキップしています...ライブラリをロードしています:'libcom_trolltech_qt_core.jnilib' .. ..
  • 展開仕様を使用する
  • わかった!ライブラリを読み込んでいます:'libQtGui.4.dylib' .. ..
  • 展開仕様を使用する

    com.trolltech.qt.internal.NativeLibraryManager.loadNativeLibrary(NativeLibraryManager.java:431)at com.trolltech.qt.internal.NativeLibraryManager.loadQtLibrary(NativeLibraryManager.java:355)at com.trolltech.qt.Utilities.loadQtLibrary(Utilities .java:145)at com.trolltech.qt.Utilities.loadQtLibrary(Utilities.java:141)at com.trolltech.qt.gui.QtJambi_LibraryInitializer。(QtJambi_LibraryInitializer.java:7)... 2その他原因:java。 lang.UnsatisfiedLinkError:/private/var/folders/4p/s98fh7114t5g3y05fh59ctpm0000gn/T/QtJambi_b-dahse_x86_64_4.6.3_gcc-20100817-1815/lib/libQtGui.4.dylib:ライブラリがロードされていません:/opt/local/lib .dylib参照元:/private/var/folders/4p/s98fh7114t5g3y05fh59ctpm0000gn/T/QtJambi_b-dahse_x86_64_4.6.3_gcc-20100817-1815/lib/libQtGui.4.dylib理由:画像が見つかりません

    java.lang.ClassLoader $ NativeLibrary.load(ネイティブメソッド)at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1827)at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1703)at java.lang.Runtime .load0(Runtime.java:770)at java.lang.Runtime.load(Runtime.java:758)at com.trolltech.qt.internal.NativeLibraryManager.loadLibrary_helper(NativeLibraryManager.java:458)atcom.trolltech.qt。 internal.NativeLibraryManager.loadNativeLibrary(NativeLibraryManager.java:426)...6詳細

GUI.javaのソースコードは次のとおりです。

import gui.ViewWindow;
import com.trolltech.qt.gui.QApplication;

public class GUI {

    public static ViewWindow viewWindow;

    public static void main(String[] args) {
        QApplication.initialize(args);
        viewWindow = new ViewWindow();
        QApplication.exec();
    }
}

そしてここにViewWindow.javaがあります:

package gui;

import com.trolltech.qt.gui.QWidget;

public class ViewWindow extends QWidget {

    public ViewWindow() {
        setWindowTitle("Level editor for Ben's Great Escape");

        resize(1000, 600);
        move(0, 0);
        show();
    }
}

私は今非常に混乱していて圧倒されているので、これを以前に見たことがある人は、見て、あなたが持っているかもしれない入力を投稿してください。

4

2 に答える 2

2

/opt/local/lib/libpng12.0.dylib が必要です

これを示すエラー メッセージの一部を以下に引用します。

原因: java.lang.UnsatisfiedLinkError: /private/var/folders/4p/s98fh7114t5g3y05fh59ctpm0000gn/T/QtJambi_b-dahse_x86_64_4.6.3_gcc-20100817-1815/lib/libQtGui.4.dylib: ライブラリが読み込まれていません: /opt/local/ lib/libpng12.0.dylib

.

そのバージョンの QtJambi をビルドしてパッケージ化した人は、サードパーティの libpng ライブラリを使用していたようです。残念ながら、それをどこから入手できるかはわかりません (正直に言うと、/opt/local にあるということは、おそらく自作のものであるということです)。

http://sourceforge.net/projects/qtjambi/files/4.7.0-beta1/を試してみてはいかがでしょう か。これがあなたの進歩を助けるか妨げている場合は、ここにコメントしてください。

(残念ながら) QtJambi のさまざまなビルドには既知の矛盾がありますが、将来、最終的にいくつかのリリースを自分で公開できるようになったときに、これらの問題が解決されることを願っています。

于 2011-10-13T19:11:13.947 に答える
0

編集:シェルスクリプトを次のように変更して修正しました:

#!/bin/sh

me=$(dirname $0)

if [ -e binpatch ];
then
    ./binpatch
    export DYLD_LIBRARY_PATH=$me/lib
    export QT_PLUGIN_PATH=$me/plugins
fi

if ! java -version 2>&1 | grep -q "1\.[5-9]"
then
    echo "Qt Jambi requires Java version 1.5.0 or higher to be preinstalled"
    echo "to work. If Java is installed then make sure that the 'java' executable"
    echo "is available in the PATH environment."
else
    for lib in $(ls qtjambi*.jar); do
    CP=$lib:$CP
    done
    java -d32 -XstartOnFirstThread -cp $CP com.trolltech.launcher.Launcher
fi

MacOSX用のQtJambi4.7.0-beta1 32ビットをダウンロードしました。qtjambi.shシェルスクリプトを実行すると、次のように出力されます。 もう必要ありません!!

于 2011-10-14T17:02:16.973 に答える