Netbeans平台应用程序不会检测带有JAMF的网络摄像头设备

时间:2011-05-04 17:25:28

标签: java netbeans jmf

我一直在尝试使用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平台项目中执行此操作时,此输出为“length:0”。

基本上我有我的Netbeans项目套件 2个模块:

  • JMF库(包含jmf.jar的包装器模块)
  • 网络摄像头模块(包含1个带有上述代码的java文件)

我将JMF库模块作为依赖项添加到Webcam模块中,但这并不能解决问题。 我还可以确认已设置类路径:

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文件夹中。

请在这里帮助我:)

2 个答案:

答案 0 :(得分:4)

当我在Netbeans中使用JMF时。我必须做以下事情:

  1. 将程序文件x86中的所有5个.jars添加到tools --> libraries
  2. 右键点击项目的libraries
  3. 在项目窗格中,点击add library
  4. 选择您添加了5个罐子的库
  5. 使用JMF注册表检查是否检测到您的网络摄像头
  6. 多数人

答案 1 :(得分:0)

你必须添加到build.xml :( jmf.propeties必须在COMPILED dist文件夹中,靠近你的your_jar.jar !!!)

转到Project Explorer中的Files选项卡,然后添加到build.xml

(我的JMF在c:\ JMF ......)

<target name="-post-compile">
         <copy file="C:\JMF\lib\jmf.properties" todir="${dist.dir}"/>
    </target>