2011-10-12 3 views
0

흠 ... ..... 이것은 QT Jambi의 첫 번째 응용 프로그램이며 창을 여는 시도입니다. 첫 번째 QT Jambi 애플리케이션에서 여러 런타임 예외가 발생 했습니까?

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

그리고 그런데

, 내가 맥북에 맥 OS X 라이온 64 비트를 실행 해요 :
이 내가 사용했던 터미널 명령입니다. 여기

Exception in thread "main" java.lang.ExceptionInInitializerError at com.trolltech.qt.gui.QApplication.(QApplication.java:12) at GUI.main(GUI.java:9) Caused by: java.lang.RuntimeException: Loading library failed, progress so far: Unpacking .jar file: 'qtjambi-macosx-gcc-4.6.3.jar' Checking Archive 'qtjambi-macosx-gcc-4.6.3.jar' - cache key='gcc-20100817-1815' - adding 'libQtCore.4.dylib' to library map - library: name='lib/libQtCore.4.dylib', - adding 'libQtGui.4.dylib' to library map - library: name='lib/libQtGui.4.dylib', - adding 'libQtXml.4.dylib' to library map - library: name='lib/libQtXml.4.dylib', - adding 'libQtSql.4.dylib' to library map - library: name='lib/libQtSql.4.dylib', - adding 'libQtSvg.4.dylib' to library map - library: name='lib/libQtSvg.4.dylib', - adding 'libQtHelp.4.dylib' to library map - library: name='lib/libQtHelp.4.dylib', - adding 'libQtScript.4.dylib' to library map - library: name='lib/libQtScript.4.dylib', - adding 'libQtScriptTools.4.dylib' to library map - library: name='lib/libQtScriptTools.4.dylib', - adding 'libQtMultimedia.4.dylib' to library map - library: name='lib/libQtMultimedia.4.dylib', - adding 'libQtNetwork.4.dylib' to library map - library: name='lib/libQtNetwork.4.dylib', - adding 'libQtOpenGL.4.dylib' to library map - library: name='lib/libQtOpenGL.4.dylib', - adding 'libQtWebKit.4.dylib' to library map - library: name='lib/libQtWebKit.4.dylib', - adding 'libQtXmlPatterns.4.dylib' to library map - library: name='lib/libQtXmlPatterns.4.dylib', - adding 'libphonon.4.dylib' to library map - library: name='lib/libphonon.4.dylib', - adding 'libQtDBus.4.dylib' to library map - library: name='lib/libQtDBus.4.dylib', - library: name='plugins/phonon_backend/libphonon_qt7.dylib', never load - library: name='plugins/imageformats/libqjpeg.dylib', never load - library: name='plugins/imageformats/libqgif.dylib', never load - library: name='plugins/imageformats/libqmng.dylib', never load - library: name='plugins/imageformats/libqtiff.dylib', never load - library: name='plugins/imageformats/libqsvg.dylib', never load - library: name='plugins/iconengines/libqsvgicon.dylib', never load - library: name='plugins/codecs/libqcncodecs.dylib', never load - library: name='plugins/codecs/libqjpcodecs.dylib', never load - library: name='plugins/codecs/libqkrcodecs.dylib', never load - library: name='plugins/codecs/libqtwcodecs.dylib', never load - library: name='plugins/accessible/libqtaccessiblewidgets.dylib', never load - library: name='plugins/sqldrivers/libqsqlite.dylib', never load - adding 'libqtjambi.jnilib' to library map - library: name='lib/libqtjambi.jnilib', - adding 'libcom_trolltech_qt_core.jnilib' to library map - library: name='lib/libcom_trolltech_qt_core.jnilib', - adding 'libcom_trolltech_qt_gui.jnilib' to library map - library: name='lib/libcom_trolltech_qt_gui.jnilib',

  • adding 'libcom_trolltech_qt_xml.jnilib' to library map
  • library: name='lib/libcom_trolltech_qt_xml.jnilib',
  • adding 'libcom_trolltech_qt_sql.jnilib' to library map
  • library: name='lib/libcom_trolltech_qt_sql.jnilib',
  • adding 'libcom_trolltech_qt_svg.jnilib' to library map
  • library: name='lib/libcom_trolltech_qt_svg.jnilib',
  • adding 'libcom_trolltech_qt_help.jnilib' to library map
  • library: name='lib/libcom_trolltech_qt_help.jnilib',
  • adding 'libcom_trolltech_qt_script.jnilib' to library map
  • library: name='lib/libcom_trolltech_qt_script.jnilib',
  • adding 'libcom_trolltech_qt_scripttools.jnilib' to library map
  • library: name='lib/libcom_trolltech_qt_scripttools.jnilib',
  • adding 'libcom_trolltech_qt_multimedia.jnilib' to library map
  • library: name='lib/libcom_trolltech_qt_multimedia.jnilib',
  • adding 'libcom_trolltech_qt_network.jnilib' to library map
  • library: name='lib/libcom_trolltech_qt_network.jnilib',
  • adding 'libcom_trolltech_qt_opengl.jnilib' to library map
  • library: name='lib/libcom_trolltech_qt_opengl.jnilib',
  • adding 'libcom_trolltech_qt_phonon.jnilib' to library map
  • library: name='lib/libcom_trolltech_qt_phonon.jnilib',
  • adding 'libcom_trolltech_qt_webkit.jnilib' to library map
  • library: name='lib/libcom_trolltech_qt_webkit.jnilib',
  • adding 'libcom_trolltech_qt_xmlpatterns.jnilib' to library map
  • library: name='lib/libcom_trolltech_qt_xmlpatterns.jnilib',
  • adding 'classes.nib' to library map
  • library: name='lib/Resources/qt_menu.nib/classes.nib',
  • adding 'info.nib' to library map
  • library: name='lib/Resources/qt_menu.nib/info.nib',
  • adding 'keyedobjects.nib' to library map
  • library: name='lib/Resources/qt_menu.nib/keyedobjects.nib',
  • plugin path='plugins'
  • using cache directory: '/var/folders/4p/s98fh7114t5g3y05fh59ctpm0000gn/T/QtJambi_b-dahse_x86_64_4.6.3_gcc-20100817-1815'
  • cache directory exists Loading library: 'libQtCore.4.dylib'...
  • using deployment spec
  • ok! Loading library: 'libqtjambi.jnilib'...
  • using deployment spec
  • ok! Loading library: 'libQtCore.4.dylib'...
  • already loaded, skipping... Loading library: 'libcom_trolltech_qt_core.jnilib'...
  • using deployment spec
  • ok! Loading library: 'libQtGui.4.dylib'...
  • using deployment spec

    at 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 more Caused by: java.lang.UnsatisfiedLinkError: /private/var/folders/4p/s98fh7114t5g3y05fh59ctpm0000gn/T/QtJambi_b-dahse_x86_64_4.6.3_gcc-20100817-1815/lib/libQtGui.4.dylib: Library not loaded: /opt/local/lib/libpng12.0.dylib Referenced from: /private/var/folders/4p/s98fh7114t5g3y05fh59ctpm0000gn/T/QtJambi_b-dahse_x86_64_4.6.3_gcc-20100817-1815/lib/libQtGui.4.dylib Reason: image not found

    at java.lang.ClassLoader$NativeLibrary.load(Native Method) 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) at com.trolltech.qt.internal.NativeLibraryManager.loadNativeLibrary(NativeLibraryManager.java:426) ... 6 more


소스 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(); 
    } 
} 

난 매우 혼란스럽고 당황 스럽습니다. 이전에 본 적이있는 사람이라면 누구나 가지고있는 의견을 살펴보고 게시하십시오. 에서 java.lang.UnsatisfiedLinkError :

에 의해 발생 :

답변

2

당신은 아래에 인용

이를 나타내는 오류 메시지의 일부를 /opt/local/lib/libpng12.0.dylib 필요/개인의/var/폴더/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의 다양한 빌드와 관련하여 알려진 불일치가 있지만 앞으로 일부 릴리즈를 직접 출판 할 때 이러한 문제가 해결되기를 바랍니다.

0

편집 :이 셸 스크립트를 변경하여 고정 : 나는 맥 OS X 용 Qt는 잠비 4.7.0-β1 32 비트 다운로드, 나는이 프로그램을 실행할 때 한

#!/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 

qtjambi.sh 셸 스크립트는 다음과 같이 출력됩니다. 더 이상 필요하지 않습니다 !!

+0

아 .. 그래서 MacOSX 버전에서는 ./binpatch?를 사용합니다. 이것은 * .dylib의 절대 경로를 수정하는 도구입니다.이 도구는 더 이상 필요하지 않습니다. binpatch가 배포본을 수정하여 libpng를 찾을 수 있습니다. –