1

Eclipse の外部で SWT アプリを実行するためのパッケージを作成しようとしています。

Linux では、bash での実行に成功しました。しかし、Windows で実行しようとすると、次のエラーが発生します。

C:\nanoffline>java -cp "SebraeNaNOffline_lib_win_x86/*" -jar SebraeNaNOffline.jar スレッド "main" での例外internal.Library.loadLibrary(Library.java:214) at org.eclipse.swt.internal.Library.loadLibrary(Library.java:194) at org.eclipse.swt.internal.C.(C.java:21) at org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.java:63) at org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.java:54) at org.eclipse.swt.widgets.Display.(Display. .java:132) at br.com.infosolo.sebrae.nanoffline.IniciarOffline.(IniciarOffline.java:31)

私はすでにパラメーター -Djava.library.path を指定して、SWT の DLL を windows、windows/system、windows/system32... に配置しようとしています。

次の SWT JAR を使用しています (Eclipse 32 ビット Windows ディストリビューションに同梱されています: org.eclipse.swt.win32.win32.x86_3.100.1.v4234e.jar

クラスパスの下の完全な jar リスト:

antlr-2.7.7.jar com.ibm.icu_4.4.2.v20110823.jar commons-beanutils-1.8.3.jar commons-collections-3.2.1.jar commons-digester-1.8.jar commons-lang-2.5.jar commons-logging-1.1.1.jar dom4j-1.6.1.jar hibernate-commons-annotations-4.0.1.Final.jar hibernate-core-4.1.9.Final.jar hibernate-entitymanager-4.1.9.Final. jar hibernate-jpa-2.0-api-1.0.1.Final.jar iText-2.1.7.jar jasperreports-4.8.0.jar jasperreports-fonts-4.8.0_0.jar javassist-3.17.1-GA.jar jboss- logging-3.1.0.GA.jar jboss-transaction-api_1.1_spec-1.0.0.Final.jar org.eclipse.core.commands_3.6.0.I20110111-0800.jar org.eclipse.core.databinding.beans_1.2.100 .I20100824-0800.jar org.eclipse.core.databinding.observable_1.4.0.I20110222-0800.jar org.eclipse.core.databinding.property_1.4.0.I20110222-0800.jar org.eclipse.core.databinding_1.4.0. I20110111-0800.jar org.eclipse.core.runtime_3.7.0.v20110110.jar org.eclipse.equinox.common_3.6.0.v20110523.jar org.eclipse.equinox.registry_3.5.101.R37x_v20110810-1611.jar org.eclipse.jface.databinding_1.5.0.I20100907-08 .jar org.eclipse.jface.text_3.7.2.v20111213-1208.jar org.eclipse.jface_3.7.0.v20110928-1505.jar org.eclipse.nebula.widgets.formattedtext_1.0.0.201301250959.jar org.eclipse.osgi_3 .7.2.v20120110-1415.jar org.eclipse.swt.win32.win32.x86_3.100.1.v4234e.jar org.eclipse.swt_3.100.1.v4234e.jar org.eclipse.text_3.5.101.v20110928-1504.jar org .eclipse.ui.forms_3.5.101.v20111011-1919.jar org.eclipse.ui.workbench_3.7.1.v20120104-1859.jar sqlite-jdbc-3.7.15-SNAPSHOT.jar swt-awt-win32-4234.dll swt -gdip-win32-4234.dll 77.824 swt-webkit-win32-4234.dll swt-wgl-win32-4234.dll swt-win32-4234.dll swt-xulrunner-win32-4234.dll 溶接-se-コア。jar 溶接-se.jar


(swt jar内の)swt dllを抽出しようとしましたが、同じエラーが発生しました(-Djava.library.pathパラメーターを指定)。

私のウィンドウは Windows XP 32 ビットで、JVM は 1.7.0_13 32 ビットです。

Windows 64 ビット (windows8) で x64 swt ライブラリを使用して実行しようとすると、次のようになります: C:\nanoffline>java -cp "SebraeNaNOffline_lib_win/*" -jar SebraeNaNOffline.jar Exception in thread "main" java.lang.UnsatisfiedLinkError: SWT ライブラリを読み込めませんでした。理由: java.library.path に swt-gtk-3740 がありません java.library.path に swt-gtk がありません ライブラリをロードできません: C:\Users\Infosolo.swt\lib\win32\x86_64\swt-gtk-3740 .dll ライブラリを読み込めません: C:\Users\Infosolo.swt\lib\win32\x86_64\swt-gtk.dll

    at org.eclipse.swt.internal.Library.loadLibrary(Library.java:285)
    at org.eclipse.swt.internal.Library.loadLibrary(Library.java:194)
    at org.eclipse.swt.internal.C.<clinit>(C.java:21)
    at org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.java:63)
    at org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.java:54)
    at org.eclipse.swt.widgets.Display.<clinit>(Display.java:132)
    at br.com.infosolo.sebrae.nanoffline.IniciarOffline.<clinit>(IniciarOffl

ine.java:31)


Eclipse で swt アプリを実行すると (Eclipse から起動)、すべて正常に動作します。

前もって感謝します。

4

1 に答える 1

0

私の問題はMETA-INF\MANIFEST.MFアーカイブにありました。

マニフェストはlinuxgtkSWTjarを参照していました。

これで、すべてのSWTLIBを共通名swt.jarに変更しました。プラットフォームを変更するときは、マニフェストファイルを変更せずにjarを同じ名前に置き換える必要があります。

于 2013-02-13T17:36:46.573 に答える