前提・実現したいこと
IntelliJを使用したマイクラのSpigotプラグインの開発をJavaでしております。
OpenCVをインポートして使用したいのですがうまくインポート出来ていないようでエラーが出ます。
OpenCVで動画を読み込みフレーム毎のrgbを取得したいので他のライブラリやライブラリを使わずにできる場合があれば是非それも教えていただきたいです。
該当のソースコード
java
1package domain.spigot.origin.origin; 2 3import org.bukkit.plugin.java.JavaPlugin; 4import org.opencv.core.Core; 5 6public final class Origin extends JavaPlugin { 7 8 static {System.loadLibrary(Core.NATIVE_LIBRARY_NAME);} 9 10 @Override 11 public void onEnable() { 12 // Plugin startup logic 13 System.out.println("プラグインが有効になりました"); 14 } 15 16 @Override 17 public void onDisable() { 18 // Plugin shutdown logic 19 } 20}
build.gradleは以下のようになっております。
import org.apache.tools.ant.filters.ReplaceTokens plugins { id 'java' } group = 'domain.spigot.origin' version = '0.1.0-SNAPSHOT' sourceCompatibility = '1.8' targetCompatibility = '1.8' compileJava.options.encoding = 'UTF-8' repositories { mavenCentral() maven { name = 'spigotmc-repo' url = 'https://hub.spigotmc.org/nexus/content/repositories/snapshots/' } maven { name = 'sonatype' url = 'https://oss.sonatype.org/content/groups/public/' } } dependencies { compileOnly 'org.spigotmc:spigot-api:1.16.4-R0.1-SNAPSHOT' compileOnly fileTree(dir: 'lib', include: '*') //初期状態から追加 } processResources { from(sourceSets.main.resources.srcDirs) { filter ReplaceTokens, tokens: [version: version] } } jar{ //初期状態から追加 from { //初期状態から追加 configurations.compile.collect { //初期状態から追加 it.isDirectory() ? it : zipTree(it) //初期状態から追加 } //初期状態から追加 } //初期状態から追加 } //初期状態から追加
「初期状態から追加」と書いてあるところのみ追加しております。
libフォルダにはopencv-451.jar
とx64/opencv_java451.dll
が入っております。
発生している問題・エラーメッセージ
プログラムを実行したときに表示されるエラーです。
プログラムのstatic {System.loadLibrary(Core.NATIVE_LIBRARY_NAME);}
をコメントアウトすると正常に起動します。
Caused by: java.lang.NoClassDefFoundError: org/opencv/core/Core at domain.spigot.origin.origin.Origin.<clinit>(Origin.java:8) ~[?:?] at java.lang.Class.forName0(Native Method) ~[?:1.8.0_271] at java.lang.Class.forName(Unknown Source) ~[?:1.8.0_271] at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:64) ~[spigot-1.16.4.jar:git-Spigot-37d799b-3eb7236] at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:135) ~[spigot-1.16.4.jar:git-Spigot-37d799b-3eb7236] ... 15 more Caused by: java.lang.ClassNotFoundException: org.opencv.core.Core at java.net.URLClassLoader.findClass(Unknown Source) ~[?:1.8.0_271] at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:167) ~[spigot-1.16.4.jar:git-Spigot-37d799b-3eb7236] at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:96) ~[spigot-1.16.4.jar:git-Spigot-37d799b-3eb7236] at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_271] at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_271] at domain.spigot.origin.origin.Origin.<clinit>(Origin.java:8) ~[?:?] at java.lang.Class.forName0(Native Method) ~[?:1.8.0_271] at java.lang.Class.forName(Unknown Source) ~[?:1.8.0_271] at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:64) ~[spigot-1.16.4.jar:git-Spigot-37d799b-3eb7236] at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:135) ~[spigot-1.16.4.jar:git-Spigot-37d799b-3eb7236] ... 15 more
試したこと
【Spigot】Bukkitプラグインの作り方講座 - 他のプラグインとの連携
こちらの記事を参考に最初は行っていたのですが、この方法だと外部ライブラリを含むことができないそうなので
OpenCV in a JAR Minecraft plugin?
こちらを見ましたが回答がないのに加えて私はSystem.loadLibrary(Core.NATIVE_LIBRARY_NAME);
も実行できていないので他にも問題がある。
Java自体初心者なので勝手がわかっていないところもあると思いますがご回答いただけると幸いです。
補足情報(FW/ツールのバージョンなど)
OS:Windows10(64bit)
開発ツール:IntelliJ
OpenCV:ver451
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。