goo blog サービス終了のお知らせ 

YUKI'S BLOG

HCCソフト社長の日常をたまにお知らせします。

JFaceアプリをEclipseから起動する

2011-10-13 23:40:40 | 技術情報

前回作成したJFaceのアプリをEclipseから起動します。

Eclipseから通常のJavaアプリと同様に起動しましたが。。

 

 

java.lang.NoClassDefFoundError: org/eclipse/core/runtime/IProgressMonitor
Caused by: java.lang.ClassNotFoundException: org.eclipse.core.runtime.IProgressMonitor
 at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
 at java.security.AccessController.doPrivileged(Native Method)
 at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
 at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:248)

とのこと。このクラスは、pluginフォルダのorg.eclipse.equinox.common_3.6.0.v20110523.jar

に含まれているので、プロジェクトのビルドパスに追加しました。

 

 

もう1回実行してみると、

 

Exception in thread "main" java.lang.UnsatisfiedLinkError: no swt-win32-2133 in java.library.path
 at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1734)
 at java.lang.Runtime.loadLibrary0(Runtime.java:823)
 at java.lang.System.loadLibrary(System.java:1028)
 at org.eclipse.swt.internal.Library.loadLibrary(Library.java:108)
 at org.eclipse.swt.internal.win32.OS.<clinit>(OS.java:46)
 at org.eclipse.swt.internal.win32.TCHAR.<clinit>(TCHAR.java:30)
 at org.eclipse.swt.widgets.Widget.<clinit>(Widget.java:83)
 at org.eclipse.jface.window.Window.createShell(Window.java:487)
 at org.eclipse.jface.window.Window.create(Window.java:430)
 at org.eclipse.jface.window.Window.open(Window.java:790)
 at com.hcc_soft.geo.core.view.swt.CoolBarApplicationWindow.main(CoolBarApplicationWindow.java:524)

SWTのネイティブDLLがパスにない、というエラーなので、swt-win32-2133.dllをEclipseのプロジェクト直下にコピーしてみました。その結果、

 

Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\eclipse3\workspace\HccMapCore3\swt-win32-2133.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform
 at java.lang.ClassLoader$NativeLibrary.load(Native Method)
 at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1803)
 at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1728)
 at java.lang.Runtime.loadLibrary0(Runtime.java:823)
 at java.lang.System.loadLibrary(System.java:1028)
 at org.eclipse.swt.internal.Library.loadLibrary(Library.java:108)

開発PCは64ビットでした。なのに開発に使っていたswt.jarが32ビット版なのでエラーになったようです。(古いPCのものを流用していました)

調べたところ、

http://archive.eclipse.org/eclipse/downloads/drops/R-3.6.1-201009090800/winPlatform.php

下の方の「SWT Binary and Source 」から64ビット版のSWTがダウンロードできました。

 

 

解凍すると、中にswt.jarが入っているので、プロジェクトのビルドパスに設定します。

DLLはswt.jarをさらに解凍すると

swt-win32-3655.dll

swt-awt-win32-3655.dll

swt-gdip-win32-3655.dll

swt-wgl-win32-3655.dll

の4ファイルあったので、とりあえず全てプロジェクト直下にコピーしました。

 

再度実行。。。。。

 

 

動作しました。JFaceアプリについて、これからもう少し勉強してみたいと思います。

 


最新の画像もっと見る

コメントを投稿