我有一个应用程序,在JBuilder环境运行正常,打包成Jar运行正常,但是再做成exe,就不能正常运行了,主要是音频输入设备无法工作,有如下异常抛出:
----------------------------------------
4687 [main] TRACE media.MediaManager  - [entry] createDataSource
4687 [main] DEBUG media.MediaManager  - dsound://
java.lang.UnsatisfiedLinkError: JMFSecurityManager: java.lang.UnsatisfiedLinkErr
or: no jmdaudc in java.library.path
4697 [main] DEBUG media.MediaManager  - Could not create data source for dsound:
//
javax.media.NoDataSourceException: Error instantiating class: com.sun.media.prot
ocol.dsound.DataSource : java.lang.UnsatisfiedLinkError: JMFSecurityManager: jav
a.lang.UnsatisfiedLinkError: no jmdaudc in java.library.path
        at javax.media.Manager.createDataSource(Manager.java:1017)
        at net.java.sip.communicator.media.MediaManager.createDataSource(MediaMa
nager.java:267)
        at net.java.sip.communicator.media.MediaManager.start(MediaManager.java:
178)
        at net.java.sip.communicator.SipCommunicator.launch(SipCommunicator.java
:180)
        at net.java.sip.communicator.SipCommunicator.main(SipCommunicator.java:3
74)
4697 [main] TRACE media.MediaManager  - [exit] createDataSource----------------------------------------
为什么会这样,jar和exe我解压看了,完全一样,没有差异,那是因为运行环境的问题吗?请高人指点,谢谢了先。

解决方案 »

  1.   

    看起来像环境问题
    //no jmdaudc in java.library.path
    jmdaudc.dll 没找到
      

  2.   

    应该如何办呢,对于jmdaudc.dll我看了一下,在jmf-native.jar里面,而我已经将这个jar包含在我的项目里面了呀。还请再指点一下。
      

  3.   

    1.将jar包复制在同可执行jar所在的目录或某个子目录下. 
    2.修改Manifest 文件
     在Manifest.mf文件里加入如下行
     Class-Path:classes12.jar lib/thirdlib.jar Class-Path 是可执行jar包运行依赖的关键词.详细内容可以参考 http://java.sun.com/docs/books/tutorial/ext/index.html
      

  4.   

    to: ruowang(若望) 
    Sorry,我只是在做一个语音传输的项目,还是个初学者,抱歉,也在摸索中。