[解決済み] 32ビットJVMで64ビットSWTライブラリがロードできない(SWTファイルを置き換える)。
質問
この問題をデバッグしようとしているのですが、具体的にどこをどうすればいいのかわかりません。 SWTのjarを置き換える ファイルをEclipseで実行します。
現在のシステム構成。
Eclipse Helios 3.6 - 32 Bit
JDK 1.6
JVM - 32 Bit
Windows 7 - 64 Bit
エラーメッセージを表示します。
java.lang.UnsatisfiedLinkError: Cannot load 64-bit SWT libraries on 32-bit JVM
at org.eclipse.swt.internal.Library.loadLibrary(Library.java:194)
at org.eclipse.swt.internal.Library.loadLibrary(Library.java:174)
at org.eclipse.swt.internal.C.<clinit>(C.java:21)
at org.eclipse.swt.widgets.Display.<clinit>(Display.java:138)
at org.eclipse.ui.internal.Workbench.createDisplay(Workbench.java:687)
at org.eclipse.ui.PlatformUI.createDisplay(PlatformUI.java:161)
at de.vogella.rcp.intro.first.Application.start(Application.java:18)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575)
at org.eclipse.equinox.launcher.Main.run(Main.java:1408)
at org.eclipse.equinox.launcher.Main.main(Main.java:1384)
An error has occurred. See the log file
回避策
-
リンク1 : 原因がわかり、64bitのSWTを32bitに置き換えてみましたが、正しいかどうかわかりません?
32ビットファイル swt-3.6.1-win32-win32-x86.zip をダウンロードしました。 ZIPファイルを解凍します。 以下のようなファイルがあります。
swt.jarファイルをコピー C:\Program Fileseclipse
に移動しました。 64ビットSwtファイル(すなわちorg.eclipse.swt.win32.x86_64.source_3.6.2.v3659c)を削除しました。 コピーしたswt.jarファイルを配置し、再スタート。
まだSAME ERRORを投げる
swt.jar ファイルを org.eclipse.swt.win32.x86_64.source_3.6.2.v3659c にリネームすることも試した。
まだ同じ ERROR
-
リンク2 : 代替策を提案したが、解決できなかった。
まだ同じERROR
-
32-JVMと32-Bit Eclipseをアンインストールして、対応する64-Bitバージョンをインストールするのはどうしても避けたいのですが。
オプションではありません
の後の回避策 paulsm4 と ポール・ウェブスター レスポンス & 困ったなあ
EclipseでJVM、JREのバージョンを確認するために実行したところ
package javaVersion;
public class JavaVersion
{
public static void main( String[] args )
{
System.out.println( "JRE Version :" + System.getProperty( "java.runtime.version" ) );
System.out.println( "JVM Bit size: " + System.getProperty( "sun.arch.data.model" ) );
}
}
出力します。
1.6.0_31-b05
JVM Bit size: 32
しかし、コマンドラインで JAVA - VERSION を試したところ
私の理解では、システムは64ビットのJVMを持っていますが、Eclispeは32ビットのJVMを読んでいます。だから、どのように32ビットのJVMを読むためにシステムを流用することができますか?
解決方法は?
Eclipse は、起動構成で定義した JRE を使用してアプリケーションを起動しています。 あなたは32ビットのEclipseを実行しているので、32ビットのSWTライブラリに対して実行/デバッグしており、32ビットのJREを実行する必要があります。
64ビットJREは、何らかの理由により、デフォルトのインストール済みJREとなっています。
これを変更するには、まず、「インストールされているJRE」の環境設定で32ビットJREが設定されていることを確認します。 ウィンドウ -> プリファレンス に移動し、Java -> Installed JREs に移動してください。
追加]をクリックして、32ビットJVMの
JAVA_HOME
を追加してください。
次に、Run Configuration で Eclipse Application を見つけて、Runtime JRE が先ほど設定した 32-bit JRE に設定されていることを確認します。
(貧弱にハイライトされているコンボボックスに注意してください)。
SWTのjarを入れ替えるのはやめましょう、悪い結果になりそうです。
関連
-
[解決済み】javaで指定されたファイルが見つからない
-
[解決済み】デフォルトのキーストアファイルが存在しない?
-
[解決済み】純粋なJUnitテストにVisibleForTestingを使用する方法
-
[解決済み] Hide Utility Class Constructor : ユーティリティクラスはパブリックまたはデフォルトコンストラクタを持つべきではありません。
-
[解決済み】Java: GZIPInputStreamの作成に失敗しました。GZIP形式ではありません
-
[解決済み] SQLエラー。0, SQLState: 08S01 通信リンクの失敗 [重複]。
-
[解決済み】フォルダに書き込もうとすると「java.nio.file.AccessDeniedException」が発生する件
-
[解決済み] JVMターゲット1.8でビルドされたバイトコードをJVMターゲット1.6でビルドされているバイトコードにインライン化することができない
-
[解決済み] 64ビットJVMで動作しているか、32ビットJVMで動作しているか、どうすればわかりますか(プログラム内から)?
-
[解決済み】EclipseでSWTライブラリの読み込みができない
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】HTTPステータス 405 - リクエストメソッド「POST」はサポートされていません (Spring MVC)
-
[解決済み】imageio.IIOException: 入力ファイルが読み込めない
-
[解決済み】Javaクラスの "型に解決できない"
-
[解決済み】HTTPステータス500 サーブレットクラスのインスタンス化エラー [重複]。
-
[解決済み】「error: '.class' expected」の意味と修正方法について
-
[解決済み] intellijが自動配線リポジトリにタイプのBeanが見つからないと不正確な発言をする件
-
[解決済み】java.io.IOException: 壊れたパイプ
-
[解決済み】Javaで文字列をコピーするにはどうしたらいいですか?
-
[解決済み】Javaメソッドスタブ
-
[解決済み】Java Error "Exception in thread "main" java.util.InputMismatchException" Array プログラムで発生。