可运行的JavaCV项目

时间:2012-02-03 10:43:25

标签: java dll opencv jar

我正在使用OpenCV包装器JavaCV开发一个简短的应用程序。我尝试运行一个基本的例子,它在我的计算机上运行没有任何问题。

现在我遇到问题,当我尝试在笔记本电脑上执行相同的程序时。 OpenCV没有安装在那里,但OpenCV二进制文件包含在JavaCV jar中,它们包含在我的jar文件中。

所以我的问题是,是否有机会创建一个可在任何未安装OpenCV的Ubuntu或Windows系统上执行的可运行jar文件。

谢谢和最好的问候

安德烈亚斯

1 个答案:

答案 0 :(得分:2)

是的,但鉴于Java和C ++的限制以及Microsoft的许可问题,最简单的方法是在一个庞大的JNI库中静态链接所需的一切,每个平台一个。这可以通过修改opencv_core.java文件顶部的目录并将它们指向静态库,并使用JavaCPP的-o myMassiveJNIlib选项来完成(请参阅build.xml文件中的Loader.extractResource()文件。 JavaCV)。在您的应用程序中,然后在使用JavaCV之前简单地调用System.load('path / to / myMassiveJNIlib')。我们还可以在JAR文件中包含的相关库文件(可能是基于Loader.getPlatformName()的文件名)上调用System.load(),以便在调用{{1}}之前将其解压缩到临时文件中。这就是JavaCPP为每个类自动执行的操作,当我们不需要将所有内容合并到一个大型文件中时。

编辑:最新版本的JavaCPP和JavaCV可以从资源本机库中提取和加载,如FaceApplet sample所示。不用再乱用静态库了。