2015-07-17 2 views
1

Я использую библиотеку opencv в проекте java. У меня есть простой Java проект, который компилируется как «банку», и вручную добавлять в библиотеку OpenCV, то я знаю, что я должен поставить этот код после того, как ничего:Системная библиотека java не загружает библиотеку opencv

System.loadLibrary (Core.NATIVE_LIBRARY_NAME);

Это хорошо работает, но теперь, мне нужно такое же приложение, работающее на сервере, так что я сделал Maven простой проект, который собирает в «войну», и добавил OpenCV в зависимости, но в строке выше I получите эту ошибку.

Caused by: java.lang.UnsatisfiedLinkError: no opencv_java249 in java.library.path 

И, я думаю, это правда, потому что это зависимость от maven. Как я это исправим?

Вот мой pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
<groupId>org.springframework.samples</groupId> 
<artifactId>RetinoblastomappSpring</artifactId> 
<version>0.0.1-SNAPSHOT</version> 
<packaging>war</packaging> 
<description>Tesis de diagnostico temprano retinoblastoma</description> 

<properties> 

    <!-- Generic properties --> 
    <java.version>1.8</java.version> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 

    <!-- Spring --> 
    <spring-framework.version>3.2.3.RELEASE</spring-framework.version> 

    <!-- Hibernate/JPA --> 
    <hibernate.version>4.2.1.Final</hibernate.version> 

    <!-- Logging --> 
    <logback.version>1.0.13</logback.version> 
    <slf4j.version>1.7.5</slf4j.version> 

    <!-- Test --> 
    <junit.version>4.11</junit.version> 

    <!-- OpenCV --> 
    <opencv.version>2.4.9-4</opencv.version> 

</properties> 

<dependencies> 
    <!-- Spring and Transactions --> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-context</artifactId> 
     <version>${spring-framework.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-tx</artifactId> 
     <version>${spring-framework.version}</version> 
    </dependency> 

    <!-- Logging with SLF4J & LogBack --> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-api</artifactId> 
     <version>${slf4j.version}</version> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>ch.qos.logback</groupId> 
     <artifactId>logback-classic</artifactId> 
     <version>${logback.version}</version> 
     <scope>runtime</scope> 
    </dependency> 

    <!-- Hibernate --> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-entitymanager</artifactId> 
     <version>${hibernate.version}</version> 
    </dependency> 


    <!-- Test Artifacts --> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-test</artifactId> 
     <version>${spring-framework.version}</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>${junit.version}</version> 
     <scope>test</scope> 
    </dependency> 

    <!-- OpenCV --> 
    <dependency> 
     <groupId>nu.pattern</groupId> 
     <artifactId>opencv</artifactId> 
     <version>${opencv.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>exec-maven-plugin</artifactId> 
     <version>1.4.0</version> 
    </dependency> 



</dependencies> 
<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.3</version> 
      <configuration> 
       <source>1.8</source> 
       <target>1.8</target> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

UPDATE

Я добавил библиотеку вручную, и это то же самое, война компилирует ОК, но когда я исполняю он, эта строка терпит неудачу, и я получаю ту же ошибку.

Я читал, что я должен добавить OpenCV моего системные переменные, но это не сработало

+0

Я думаю, что не нужно говорить, что если я не ставлю эта линия, у меня есть другие неудачи, потому что это. – Tupac

+0

Добавьте свой pom.xml, чтобы мы могли вам помочь. – JFPicard

+0

ОК, я положил pom в вопрос – Tupac

ответ

3

Вы можете решить эту проблему, добавив файл «opencv_java249.dll» в Java папки/bin/(где вы установили Java)

(да это ответ на меня, потому что я хочу, чтобы помочь кому-то, что имеет неприятности на одно и то же)

+0

Поиск, предположительно, вы можете указать свои родные библиотеки в хранилище maven. (что в eclipse или другой среде IDE) или компиляции с maven, вы можете указать путь к java-библиотеке "-Djava.library.path =" – Tupac

Смежные вопросы