【问题标题】:Embed Youtube Video in Java Swing在 Java Swing 中嵌入 Youtube 视频
【发布时间】: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


【解决方案1】:

正如异常消息中清楚显示的那样

线程“主”java.lang.UnsatisfiedLinkError 中的异常:无法加载 64 位 JVM 上的 32 位 SWT 库

将 32 位 JDK 安装为 32 位 SWT 库无法在 64 位运行时运行。

从以下链接下载x84,删除现有的java安装并安装下载的那个。

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

或者检查一下

SWT on Windows 64-bit

【讨论】:

  • 非常感谢。我忽略了异常消息的一部分
猜你喜欢
  • 2021-12-04
  • 2012-06-25
  • 1970-01-01
  • 2011-08-10
  • 2011-02-01
  • 2012-01-06
  • 2016-07-25
  • 1970-01-01
相关资源
最近更新 更多