Java jmvfw.dll:无法在 AMD 64 位平台上加载 IA 32 位 .dll

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/19518304/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-12 17:58:14  来源:igfitidea点击:

jmvfw.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform

javadlljmf

提问by MOTIVECODEX

System: Win 7 64 bit

系统:Win 7 64位

JMF works on my system by starting JMstudio, it finds my drivers and starts my mic and webcam. But when I run the Netbeans code it doesn't work.

JMF 通过启动 JMstudio 在我的系统上工作,它会找到我的驱动程序并启动我的麦克风和网络摄像头。但是当我运行 Netbeans 代码时它不起作用。

I have followed these steps on this website to install JMF on Win 7 64bit, without success: https://forums.oracle.com/thread/2134405. I have searched in all the other answers related to this problem without any success. It should work on my 64 bit as stated in the link I pasted here.

我已按照本网站上的这些步骤在 Win 7 64 位上安装 JMF,但没有成功:https: //forums.oracle.com/thread/2134405。我已经搜索了与此问题相关的所有其他答案,但没有任何成功。它应该适用于我在此处粘贴的链接中所述的 64 位。

I have installed 32 bit Java JDK, Moved the DLL's from the JMF install folder to System32 and SysWOW64, No errors in the code and JMF.jar is added.

我已经安装了 32 位 Java JDK,将 DLL 从 JMF 安装文件夹移动到 System32 和 SysWOW64,代码中没有错误并且添加了 JMF.jar。

Any solutions? When I run it, I get the following error:

任何解决方案?当我运行它时,出现以下错误:

Exception in thread "VFW Request Thread" java.lang.UnsatisfiedLinkError: JMFSecurityManager: java.lang.UnsatisfiedLinkError: C:\Windows\System32\jmvfw.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform
    at com.sun.media.JMFSecurityManager.loadLibrary(JMFSecurityManager.java:206)
    at com.sun.media.protocol.vfw.VFWCapture.<clinit>(VFWCapture.java:19)
    at com.sun.media.protocol.vfw.VFWSourceStream.doConnect(VFWSourceStream.java:241)
    at com.sun.media.protocol.vfw.VFWSourceStream.run(VFWSourceStream.java:763)
    at java.lang.Thread.run(Thread.java:724)

采纳答案by MOTIVECODEX

I found out that my system was still running the 64 bit Java, while I installed the 32 bit. Traces of Java 64 bit were still present on my system, so I removed all traces of Java, then installed the latest Java JDK 7 on my system. Copy, pasted C:\Program Files (x86)\Java to C:\Program Files\Java, then changed the PATH and CLASSPATH to C:\Program Files\Java. java -version in cmd worked after this and the project in Netbeans 7.4 with JMF.jar runs and captures my webcam.

我发现我的系统仍在运行 64 位 Java,而我安装了 32 位。我的系统上仍然存在 Java 64 位的痕迹,因此我删除了所有 Java 痕迹,然后在我的系统上安装了最新的 Java JDK 7。将 C:\Program Files (x86)\Java 复制、粘贴到 C:\Program Files\Java,然后将 PATH 和 CLASSPATH 更改为 C:\Program Files\Java。cmd 中的 java -version 在此之后工作,Netbeans 7.4 中的项目与 JMF.jar 运行并捕获我的网络摄像头。

回答by Abhijeet

I also fell into this trap of multiple JVM's configuration 32/64 bit, make sure to match the .DLL version with JVM, i.e., 32 bit should run on 32 bit. The same applies for 64 bit.

我也陷入了多JVM配置32/64位的陷阱,确保.DLL版本与JVM匹配,即32位应该运行在32位上。这同样适用于 64 位。

For more information refer to eclipse forum: https://www.eclipse.org/forums/index.php/t/781808/

更多信息请参考eclipse论坛:https: //www.eclipse.org/forums/index.php/t/781808/