我一直在尝试使用 Netbeans RCP 开发一个应用程序来从网络摄像头抓取图像。 简单明了,它可以在常规 Java 项目中运行。
所以首先必须安装 JMF(我使用的是 Windows 7 64 位,(JMF 需要 32 位 JDK)。
在常规 Java 项目中,我有以下代码:
Vector webcams = CaptureDeviceManager.getDeviceList(null);
int length = webcams.size();
System.out.println("length: " +length);
输出为“length: 1”(已连接 1 个网络摄像头)
当我在 Netbeans 平台项目中执行此操作时,此输出为“长度:0”。
所以基本上我有我的 Netbeans 项目套件 2个模块:
- JMF 库(带有 jmf.jar 的包装模块)
- 网络摄像头模块(包含 1 个带有上述代码的 java 文件)
我将 JMF 库模块作为依赖项添加到网络摄像头模块中,但这并没有达到目的。 我还可以确认类路径已设置:
Boot & Ext. Classpath = C:\Program Files (x86)\Java\jdk1.6.0_25\jre\lib\resources.jar;C:\Program Files (x86)\Java\jdk1.6.0_25\jre\lib\rt.jar;
C:\Program Files (x86)\Java\jdk1.6.0_25\jre\lib\sunrsasign.jar;C:\Program Files (x86)\Java\jdk1.6.0_25\jre\lib\jsse.jar;
C:\Program Files (x86)\Java\jdk1.6.0_25\jre\lib\jce.jar;C:\Program Files (x86)\Java\jdk1.6.0_25\jre\lib\charsets.jar;C:\Program Files (x86)\Java\jdk1.6.0_25\jre\lib\modules\jdk.boot.jar;C:\Program Files (x86)\Java\jdk1.6.0_25\jre\classes;C:\Program Files (x86)\Java\jdk1.6.0_25\jre\lib\ext\dnsns.jar;**C:\Program Files (x86)\Java\jdk1.6.0_25\jre\lib\ext\jmf.ja**r;
C:\Program Files (x86)\Java\jdk1.6.0_25\jre\lib\ext\localedata.jar;C:\Program Files (x86)\Java\jdk1.6.0_25\jre\lib\ext\sound.jar;C:\Program Files (x86)\Java\jdk1.6.0_25\jre\lib\ext\sunjce_provider.jar;
C:\Program Files (x86)\Java\jdk1.6.0_25\jre\lib\ext\sunmscapi.jar;C:\Program Files (x86)\Java\jdk1.6.0_25\jre\lib\ext\sunpkcs11.jar
我真的被困在这里了。 Netbeans RCP 有什么特别之处,以至于添加 jmf.jar 作为包装器模块似乎会破坏此代码?
如果有人提供一些提示来帮助获取更多调试信息来跟踪问题,我将非常感激。
编辑:
经过多次尝试和错误,我找到了以下解决方案:
Copy c:\Progra.... x86\JMF...\lib\* to c:\Program .. x86\jdk\lib\*
Including the jmf.properties file
不过,我很高兴这能起作用,一旦应用程序转移到另一台客户端 PC 上使用,那里就不会再有这些库了。
所以我真的不知道如何用 Netbeans RCP 解决这个问题。它能有多难?我将 jar 添加到包装器中,还将 .properties 文件放置在/release/modules/ext 文件夹中。
请帮帮我:)
最佳答案
当我在 Netbeans 中使用 JMF 时。我必须执行以下操作:
- 将程序文件 x86 中的所有 5 个 .jar 添加到
tools --> Library
- 右键单击项目的
库
- 在项目 Pane 中,点击
添加库
- 选择您添加了 5 个 jar 的库
- 使用 JMF 注册表检查是否检测到您的网络摄像头
仅此而已
关于java - Netbeans 平台应用程序未使用 JMF 检测网络摄像头设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5887383/