`

JavaCV部署到web服务器上 Javacv linux 环境配置

阅读更多

JavaCV是java实现的调用openCV的接口,本身opencv就可以支持Windows,Linux和Mac OS,Javacv可以将OpenCV的功能放到Android系统上调用,处理设备的图形图像和视频等

关于javacv 在Windows、Android系统的配置,可以参考:http://blog.csdn.net/victory06057231/article/details/8026188 这篇文章来做。

在Java的Web服务器上配置JavaCV的环境,没有介绍。

JavaCV的依赖是:

 

<dependency>
         <groupId>com.googlecode.javacv</groupId>
         <artifactId>javacv</artifactId>
         <version>0.1</version>
      </dependency>

 下载下来有7个jar包,其中带系统和机型后缀的jar包里面都是OpenCV的配置文件,在带linux后缀的jar包中是C编译的.so文件,解压之后就可以看到

 

 

javacv-0.1.jar
javacv-0.1-macosx-x86_64.jar
javacv-0.1-linux-x86_64.jar
javacv-0.1-linux-x86.jar
javacv-0.1-windows-x86.jar
javacv-0.1-windows-x86_64.jar

这个.so文件,要Linux环境配置是要配置到指定目录下面的,开始以为定义环境变量就可以了,但是直到看到javacv-0.1.jar的源码(反编译得来的),才发现所有的配置目录都是写死了的

 

public class opencv_core
{
  public static final String genericIncludepath = "/opt/local/include/";
  public static final String genericLinkpath = "/opt/local/lib/:/opt/local/lib64/:/usr/local/lib/:/usr/local/lib64/";
  public static final String windowsIncludepath = "C:/opencv/build/include/";
  public static final String windowsx86Linkpath = "C:/opencv/build/x86/vc10/lib/";
  public static final String windowsx86Preloadpath = "C:/opencv/build/x86/vc10/bin/;C:/opencv/build/common/tbb/ia32/vc10/";
  public static final String windowsx64Linkpath = "C:/opencv/build/x64/vc10/lib/";
  public static final String windowsx64Preloadpath = "C:/opencv/build/x64/vc10/bin/;C:/opencv/build/common/tbb/intel64/vc10/";
  public static final String androidIncludepath = "../include/";
  public static final String androidLinkpath = "../lib/";

 

@Properties({@com.googlecode.javacpp.annotation.Platform(includepath={"/opt/local/include/"}, linkpath={"/opt/local/lib/:/opt/local/lib64/:/usr/local/lib/:/usr/local/lib64/"}, include={"<opencv2/calib3d/calib3d.hpp>", "opencv_adapters.h"}, link={"opencv_calib3d@.2.4", "opencv_features2d@.2.4", "opencv_flann@.2.4", "opencv_highgui@.2.4", "opencv_imgproc@.2.4", "opencv_core@.2.4"}), @com.googlecode.javacpp.annotation.Platform(value={"windows"}, includepath={"C:/opencv/build/include/"}, link={"opencv_calib3d240", "opencv_features2d240", "opencv_flann240", "opencv_highgui240", "opencv_imgproc240", "opencv_core240"}), @com.googlecode.javacpp.annotation.Platform(value={"windows-x86"}, linkpath={"C:/opencv/build/x86/vc10/lib/"}, preloadpath={"C:/opencv/build/x86/vc10/bin/;C:/opencv/build/common/tbb/ia32/vc10/"}), @com.googlecode.javacpp.annotation.Platform(value={"windows-x86_64"}, linkpath={"C:/opencv/build/x64/vc10/lib/"}, preloadpath={"C:/opencv/build/x64/vc10/bin/;C:/opencv/build/common/tbb/intel64/vc10/"}), @com.googlecode.javacpp.annotation.Platform(value={"android"}, includepath={"../include/"}, linkpath={"../lib/"})})
public class opencv_calib3d
{

 

也就是必须按照源码的配置,javacv才会读OpenCV的动态链接库。

对于我的linux服务器是Linux86_64位的8核机,将javacv-0.1-windows-x86_64.jar的解压的.so文件放到/usr/local/lib64/或者/opt/local/lib64/目录下面就可以了。

 

如果没有找到配置文件,会在应用服务器的临时文件夹解压文件,解压不成功找不到文件,就抛这个异常

  ERROR com.alibaba.citrus.turbine.pipeline.valve.HandleExceptionValve - Failed to process request /auto/imageCompare.do, the root cause was UnsatisfiedLinkError: /home/admin/wtp/.default/temp/javacpp33861831521035698/libjniopencv_core.so: libopencv_core.so.2.4: 无法打开共享对象文件: 没有那个文件或目录

java.lang.UnsatisfiedLinkError: /home/admin/wtp/.default/temp/javacpp33861831521035698/libjniopencv_core.so: libopencv_core.so.2.4: 无法打开共享对象文件: 没有那个文件>

或目录

        at java.lang.ClassLoader$NativeLibrary.load(Native Method) ~[na:1.6.0_32]

        at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1807) ~[na:1.6.0_32]

        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1703) ~[na:1.6.0_32]

        at java.lang.Runtime.load0(Runtime.java:770) ~[na:1.6.0_32]

 

        at java.lang.System.load(System.java:1003) ~[na:1.6.0_32]

 

分享到:
评论

相关推荐

    Java代码实现调用RapidOCR(基于PaddleOCR),适配Mac、Win、Linux,支持最新PP-OCRv4

    不过,确保所有依赖项(如Python,PaddleOCR,Java等)都在目标平台上正确安装和配置。 在实际应用中,你可能还需要考虑性能优化、错误处理、多线程处理等高级话题。RapidOCR与Java的结合为开发者提供了一个强大且...

    geoServer地图服务包(包含java包和tomcat服务器包).zip

    3. **Tomcat服务器包**: Apache Tomcat是一款开源的Servlet容器,用于部署和运行Java Web应用程序。GeoServer作为Web应用,需要在这样的容器中运行。Tomcat安装简单,配置灵活,是许多小型到中型企业首选的Java应用...

    Java实现ocr图片识别(PaddleOCR)飞桨

    - 将项目打包成可执行的jar文件,部署到服务器上。 - 使用Postman或其他工具进行API测试,验证OCR功能是否正常工作。 通过以上步骤,我们可以成功地在Java SpringBoot应用中集成PaddleOCR,实现高效、便捷的OCR...

    java开源包11

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包6

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包9

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包5

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包4

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包101

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包8

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包10

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包3

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包1

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    JAVA上百实例源码以及开源项目源代码

    Java生成密钥的实例 1个目标文件 摘要:Java源码,算法相关,密钥 Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、...

    Java资源包01

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包2

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包7

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    Linux 学习笔记

    - **安装配置 Tomcat**:Tomcat 是一个开源的 Java 应用服务器,用于部署 Java Web 应用。在 Linux 上安装 Tomcat 可以通过下载官方提供的二进制包并解压到指定目录,然后设置环境变量和启动脚本来实现。配置包括...

    梳理的一些java开发中用上的框架和开发工具,肯定会遗漏,欢迎补充

    Resin 是一款高性能、高稳定性的Web服务器/应用服务器,支持多种语言如Java、Ruby等。 #### 数据库 - **H2**: 框架。H2 是一个开源的嵌入式数据库,支持多种模式:内存模式、文件模式及网络服务器模式。 - **SQLite...

    java资料面试题

    ### Java基本概念及环境配置 #### 1.1 什么是面向对象程序设计? 面向对象程序设计(Object-Oriented Programming, OOP)是一种编程范式,它基于“对象”的概念来构建程序。对象是现实世界实体的抽象表示,具有...

Global site tag (gtag.js) - Google Analytics