1

我下载并安装了一个 fat-jar eclipse 插件,以便能够打包我的项目,其中包含一个外部库(JMF)。但是当我运行应用程序时,它显示“未找到设备”。这是否意味着 jmf.jar 没有包含在新的 jar 文件中,因为它无法检测到网络摄像头?因为当我在eclipse中运行应用程序时,没有错误,它可以毫无问题地检测到网络摄像头。

我怎么解决这个问题?

4

5 回答 5

3

不,“未找到设备”是典型的 JMF 响应 - 它似乎找不到视频/音频输入或输出设备。所以我认为 JMF 确实在你的罐子里,只是在抱怨。

您的打包课程中是否可能缺少某些内容?在 Eclipse 的类路径中但未包含在您的大 jar 中的东西?

更新

我只记得问题可能出在哪里:出于性能原因等,JMF 使用本机代码;安装 JMF 会安装 DLL (Windows) 或 .so (Linux/Mac?)。我猜想当您对其类路径进行如此深远的更改时,JMF 很难找到这些组件。

我相信还有一个可用的软件仿真驱动程序。您可以尝试使用它并查看它是否可以从 jar 中正常工作吗?

于 2010-01-07T14:19:40.887 回答
1

我刚才遇到了同样的问题,不知道你是否这样做了,但我通过将 jmf.properties 文件添加到与 .jar 文件所在的目录相同的目录来解决它。您可以在 JMF 安装目录的 lib 目录中找到 jmf.properties。只需复制并粘贴它。

于 2011-12-19T14:24:32.460 回答
0

可能是 fatjar 使用静态代码分析来确定生成的 JAR 中的类文件,并且 JMF 正在使用动态技术基于某种注册表从其他 jar 加载类。找出问题的一种方法是使用-verbose:class开关运行您的应用程序,然后筛选输出以查看哪些类或哪些类未能加载。

于 2010-01-07T14:19:47.517 回答
0

在 Sun 论坛上发现了一个帖子,其中有人在使用 JMF 时遇到了问题。一位响应者建议:

尝试 FMJ ( http://www.fmj-sf.net/ ) 或 gstreamer-java ( http://code.google.com/p/gstreamer-java/ )。

切换媒体框架产品可能是一种解决方案(尽管当然很难保证)。

于 2010-01-07T15:03:20.050 回答
0

请确保您的 jar 路径,jar 路径不应是 D: 或 E: 之类的其他路径,它应该是 jmf 安装目录,如 C:\Program Files (x86)\JMF2.1.1e\lib\jmf.jar。希望这会帮助你。

于 2014-08-04T14:17:09.363 回答