2015-01-01 1 views
2

Я добавил следующие зависимости к моему проекту maven.Не удалось инициализировать класс org.bytedeco.javacpp.avutil на OS X вместе с Maven в JavaCV

<dependency> 
     <groupId>org.bytedeco</groupId> 
     <artifactId>javacpp</artifactId> 
     <version>0.10</version> 
    </dependency> 
    <dependency> 
     <groupId>org.bytedeco</groupId> 
     <artifactId>javacv</artifactId> 
     <version>0.10</version> 
    </dependency> 
    <dependency> 
     <groupId>org.bytedeco.javacpp-presets</groupId> 
     <artifactId>opencv</artifactId> 
     <version>2.4.10-0.10</version> 
    </dependency> 
    <dependency> 
     <groupId>org.bytedeco.javacpp-presets</groupId> 
     <artifactId>ffmpeg</artifactId> 
     <version>2.5.1-0.10</version> 
    </dependency> 
    <dependency> 
     <groupId>org.bytedeco.javacpp-presets</groupId> 
     <artifactId>flycapture</artifactId> 
     <version>2.7.3.13-0.10</version> 
    </dependency> 
    <dependency> 
     <groupId>org.bytedeco.javacpp-presets</groupId> 
     <artifactId>libdc1394</artifactId> 
     <version>2.2.2-0.10</version> 
    </dependency> 
    <dependency> 
     <groupId>org.bytedeco.javacpp-presets</groupId> 
     <artifactId>libfreenect</artifactId> 
     <version>0.5.1-0.10</version> 
    </dependency> 
    <dependency> 
     <groupId>org.bytedeco.javacpp-presets</groupId> 
     <artifactId>videoinput</artifactId> 
     <version>0.200-0.10</version> 
    </dependency> 
    <dependency> 
     <groupId>org.bytedeco.javacpp-presets</groupId> 
     <artifactId>artoolkitplus</artifactId> 
     <version>2.3.1-0.10</version> 
    </dependency> 
    <dependency> 
     <groupId>org.bytedeco.javacpp-presets</groupId> 
     <artifactId>flandmark</artifactId> 
     <version>1.07-0.10</version> 
    </dependency> 
    <dependency> 
     <groupId>org.bytedeco.javacpp-presets</groupId> 
     <artifactId>fftw</artifactId> 
     <version>3.3.4-0.10</version> 
    </dependency> 
    <dependency> 
     <groupId>org.bytedeco.javacpp-presets</groupId> 
     <artifactId>gsl</artifactId> 
     <version>1.16-0.10</version> 
    </dependency> 
    <dependency> 
     <groupId>org.bytedeco.javacpp-presets</groupId> 
     <artifactId>llvm</artifactId> 
     <version>3.5.0-0.10</version> 
    </dependency> 
    <dependency> 
     <groupId>org.bytedeco.javacpp-presets</groupId> 
     <artifactId>leptonica</artifactId> 
     <version>1.71-0.10</version> 
    </dependency> 
    <dependency> 
     <groupId>org.bytedeco.javacpp-presets</groupId> 
     <artifactId>tesseract</artifactId> 
     <version>3.03-rc1-0.10</version> 
    </dependency> 

И побежал код, упомянутый here. Я использовал FFmpegFrameGrabber вместо OpenCVFrameGra

Я получаю следующую ошибку.

Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class org.bytedeco.javacpp.avutil 
at java.lang.Class.forName0(Native Method) 
at java.lang.Class.forName(Class.java:274) 
at org.bytedeco.javacpp.Loader.load(Loader.java:385) 
at org.bytedeco.javacpp.Loader.load(Loader.java:353) 
at org.bytedeco.javacpp.avformat$AVFormatContext.<clinit>(avformat.java:2249) 
at org.bytedeco.javacv.FFmpegFrameGrabber.startUnsafe(FFmpegFrameGrabber.java:346) 
at org.bytedeco.javacv.FFmpegFrameGrabber.start(FFmpegFrameGrabber.java:340) 

Любая идея? Я нахожусь в OS X Yosemite с JDK 1.7.

+1

Вы установили системное свойство 'platform.dependencies'? –

+0

Да, это сработало после этого. Благодарю. Но не будет ли это сделать приложение, которое я делаю платформой зависимой? – hYk

ответ

1

Как упоминал Самуэль Аудет, этот вопрос был решен после использования свойства «platform.dependencies». например:

$ mvn package exec:java -Dplatform.dependencies -Dexec.mainClass=Demo 
+0

Обязательно отметьте это как ответ! Это помогло мне, спасибо. – rjferguson

+1

Как это сделать, если я использую gradle (AndroidStudio)? –

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