🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

IntelliJ IDEA

IntelliJ IDEA(インテリジェイ アイディア)は、JetBrains社が開発した、 JavaやScalaなどで利用される統合開発環境です。

Q&A

解決済

1回答

3611閲覧

Spigotプラグインで外部ライブラリの追加-IntelliJ使用

found

総合スコア2

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

IntelliJ IDEA

IntelliJ IDEA(インテリジェイ アイディア)は、JetBrains社が開発した、 JavaやScalaなどで利用される統合開発環境です。

0グッド

0クリップ

投稿2021/01/20 03:19

前提・実現したいこと

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.jarx64/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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

build.gradleのdependenciesにopencvのjarを追加しshadowを使ってできました。
gradle shadow

gradle

1dependencies { 2 compileOnly 'org.spigotmc:spigot-api:1.16.4-R0.1-SNAPSHOT' 3 compile files('lib/opencv-451.jar') 4}

投稿2021/01/20 17:09

found

総合スコア2

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問