2011-09-06 125 views
0

我使用JMF/Webcam Frame Grabber Demo在NetBeans 7.0.1 EE中创建Java桌面应用程序,该应用程序从我的摄像头获取帧。如果我从NetBeans运行它(右键单击项目并运行),应用程序工作正常,但如果从命令提示符运行Netbeans生成的.jar文件,它不会检测到我的设备。NetBeans JMF项目部署

CaptureDeviceInfo device = CaptureDeviceManager.getDevice(cameraDevice); 

设备为空。

结果是相同的,如果我从项目库中删除jmf.jar并从那里运行它。它会抛出以下异常:

Exception in thread "Thread-4" java.lang.NullPointerException 
    at desktopapplication6.DesktopApplication6View$MyNetworkThread.run(DesktopApplication6View.java:248) 

Netbeans使用所有必需的lib jar创建dist和dist \ lib文件夹。在应用罐,MANIFEST.MF在看起来像这样

Manifest-Version: 1.0 
Ant-Version: Apache Ant 1.8.2 
Created-By: 1.6.0_27-b07 (Sun Microsystems Inc.) 
Class-Path: lib/appframework-1.0.3.jar lib/swing-worker-1.1.jar lib/jm 
f.jar 
Main-Class: desktopapplication6.DesktopApplication6 

我试图创造我自己的罐子在明显的变化,但没有运气。

我使用Win 7 64bit,JDK 32bit v.1.6.0_27。 (NetBeans使用相同的JDK),之后安装JMF(v.2.1.1e)。

Classpath = %JMFHOME%\lib\jmf.jar;%JMFHOME%\lib\sound.jar;%JMFHOME%\lib 
Path = %JMFHOME%\lib 
JMFHOME = C:\Program Files (x86)\JMF2.1.1e 

JMFRegistry检测到我的设备(vfw:Microsoft WDM Image Capture(Win32):0)。 那么,有没有人知道如何使这个jar文件工作和识别我的设备?

回答

0

jmf.properties文件需要放在与包含main方法的JAR存档具有主方法或文件夹相同的文件夹中。