【发布时间】:2019-01-12 16:35:22
【问题描述】:
我有以下问题:
我尝试在我的 Java Swing 中嵌入一个 YT 视频。因此我从这个网站安装了 DJProject https://sourceforge.net/projects/djproject/?source=typ_redirect
我添加了以下外部 JAR: sw-4.3-win32-x86.jar DJNativeSwing.jar DJNativeSwing-SWT.jar
但我收到此异常消息:
NativeSwing[1]: Exception in thread "main" java.lang.UnsatisfiedLinkError: Cannot load 32-bit SWT libraries on 64-bit JVM
NativeSwing[1]: at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)
NativeSwing[1]: at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)
NativeSwing[1]: at org.eclipse.swt.internal.C.<clinit>(Unknown Source)
NativeSwing[1]: at org.eclipse.swt.widgets.Display.<clinit>(Unknown Source)
NativeSwing[1]: at java.lang.Class.forName0(Native Method)
NativeSwing[1]: at java.lang.Class.forName(Unknown Source)
NativeSwing[1]: at org.eclipse.swt.graphics.Device.<clinit>(Unknown Source)
NativeSwing[1]: at chrriis.dj.nativeswing.swtimpl.core.SWTNativeInterface$OutProcess.runNativeSide(SWTNativeInterface.java:1273)
NativeSwing[1]: at chrriis.dj.nativeswing.swtimpl.core.SWTNativeInterface.main_(SWTNativeInterface.java:1461)
NativeSwing[1]: at chrriis.dj.nativeswing.swtimpl.NativeInterface.main(NativeInterface.java:224)
NativeSwing[2]: Exception in thread "main" java.lang.UnsatisfiedLinkError: Cannot load 32-bit SWT libraries on 64-bit JVM
NativeSwing[2]: at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)
NativeSwing[2]: at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)
NativeSwing[2]: at org.eclipse.swt.internal.C.<clinit>(Unknown Source)
NativeSwing[2]: at org.eclipse.swt.widgets.Display.<clinit>(Unknown Source)
NativeSwing[2]: at java.lang.Class.forName0(Native Method)
NativeSwing[2]: at java.lang.Class.forName(Unknown Source)
NativeSwing[2]: at org.eclipse.swt.graphics.Device.<clinit>(Unknown Source)
NativeSwing[2]: at chrriis.dj.nativeswing.swtimpl.core.SWTNativeInterface$OutProcess.runNativeSide(SWTNativeInterface.java:1273)
NativeSwing[2]: at chrriis.dj.nativeswing.swtimpl.core.SWTNativeInterface.main_(SWTNativeInterface.java:1461)
NativeSwing[2]: at chrriis.dj.nativeswing.swtimpl.NativeInterface.main(NativeInterface.java:224)
NativeSwing[3]: Exception in thread "main" java.lang.UnsatisfiedLinkError: Cannot load 32-bit SWT libraries on 64-bit JVM
NativeSwing[3]: at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)
NativeSwing[3]: at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)
NativeSwing[3]: at org.eclipse.swt.internal.C.<clinit>(Unknown Source)
NativeSwing[3]: at org.eclipse.swt.widgets.Display.<clinit>(Unknown Source)
NativeSwing[3]: at java.lang.Class.forName0(Native Method)
NativeSwing[3]: at java.lang.Class.forName(Unknown Source)
NativeSwing[3]: at org.eclipse.swt.graphics.Device.<clinit>(Unknown Source)
NativeSwing[3]: at chrriis.dj.nativeswing.swtimpl.core.SWTNativeInterface$OutProcess.runNativeSide(SWTNativeInterface.java:1273)
NativeSwing[3]: at chrriis.dj.nativeswing.swtimpl.core.SWTNativeInterface.main_(SWTNativeInterface.java:1461)
NativeSwing[3]: at chrriis.dj.nativeswing.swtimpl.NativeInterface.main(NativeInterface.java:224)
Exception in thread "main" java.lang.RuntimeException: java.net.SocketException: Connection reset
at chrriis.dj.nativeswing.swtimpl.core.OutProcessSocketsMessagingInterface.openChannel(OutProcessSocketsMessagingInterface.java:67)
at chrriis.dj.nativeswing.swtimpl.core.MessagingInterface.initialize(MessagingInterface.java:57)
at chrriis.dj.nativeswing.swtimpl.core.OutProcessSocketsMessagingInterface.<init>(OutProcessSocketsMessagingInterface.java:32)
at chrriis.dj.nativeswing.swtimpl.core.OutProcessSocketsMessagingInterface$SwingOutProcessSocketsMessagingInterface.<init>(OutProcessSocketsMessagingInterface.java:162)
at chrriis.dj.nativeswing.swtimpl.core.SWTNativeInterface$OutProcess.createOutProcessMessagingInterface(SWTNativeInterface.java:1072)
at chrriis.dj.nativeswing.swtimpl.core.SWTNativeInterface$OutProcess.createOutProcessCommunicationChannel(SWTNativeInterface.java:811)
at chrriis.dj.nativeswing.swtimpl.core.SWTNativeInterface.open_(SWTNativeInterface.java:342)
at chrriis.dj.nativeswing.swtimpl.NativeInterface.open(NativeInterface.java:100)
at tatil.main.main(main.java:16)
Caused by: java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at java.io.BufferedInputStream.fill(Unknown Source)
at java.io.BufferedInputStream.read1(Unknown Source)
at java.io.BufferedInputStream.read(Unknown Source)
at java.io.ObjectInputStream$PeekInputStream.read(Unknown Source)
at java.io.ObjectInputStream$PeekInputStream.readFully(Unknown Source)
at java.io.ObjectInputStream$BlockDataInputStream.readShort(Unknown Source)
at java.io.ObjectInputStream.readStreamHeader(Unknown Source)
at java.io.ObjectInputStream.<init>(Unknown Source)
at chrriis.dj.nativeswing.swtimpl.core.OutProcessSocketsMessagingInterface.openChannel(OutProcessSocketsMessagingInterface.java:65)
... 8 more
我该如何解决这个问题?
【问题讨论】:
-
你的 jar 是 32 位的,但你的 JVM 是 64 位的。它基本上会在错误消息中准确地告诉您。
-
"无法在 64 位 JVM 上加载 32 位 SWT 库" => 有什么不清楚的地方?
-
只需重新安装32位版本的JDK即可。
标签: java swing video youtube embed