下記の画像はプロジェクトファイルです。lib/の中にopencv.jarファイルがあるのですがそのクラスパスを指定するにはどうすればいいのでしょうか?shellファイルに指定しているのですが下記のエラーが出ます。マニュフェストファイルにもクラスパスを設定して.shellファイルの実行時に文字-cpオプションを付けてファイルを指定しましたが同じエラーが出ます。java -Djava.library.path=lib -jar Conveter.jar
コマンドを実行しましたが同じエラーが出ます。マニュフェストファイルがおかしいという指摘をもらっったのですがどこがおかしいのでしょうか?
わかっていること
javac で2つの.soと.jarファイルを指定しているのですがなぜかクラスがありませんと表示されます。
試したことコマンド
参考サイト:https://www.sejuku.net/blog/62990
参考サイト:https://docs.oracle.com/javase/jp/8/docs/technotes/tools/windows/javac.html
参考サイト:https://software.fujitsu.com/jp/manual/manualfiles/m150014/b1x10181/06z200/b0181-03-11-01-00.html
Exception in thread "main" java.lang.NoClassDefFoundError: org/opencv/core/CvType at Main.main(Main.java:15) Caused by: java.lang.ClassNotFoundException: org.opencv.core.CvType at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) ... 1 more
Main.javaのの
java
1import java.io.File; 2import org.opencv.core.Core; 3import org.opencv.core.CvType; 4import org.opencv.core.Mat; 5 6public class Main { 7 public static void main(String[] args) { 8 // OpenCVが使えるためのおまじない 9 // 環境によってcan't load libraryのエラーが出る可能性がある 10 // <解決策> 11 // lib_pathに"opencv_java450.dll"を入れたフォルダの 12 // 絶対パスを調べて、lib_folder.getAbsolutePath()の代わりに書きます 13 // 例: String lib_path = "C:\\Users\\username\\workspace\\lib"; 14 15 Mat mat = Mat.eye(3,3,CvType.CV_8UC1); 16 // 作った行列の中身を確認します。 17 System.out.println("mat = " + mat.dump()); 18 } 19}
run.sh
shell
1#!/bin/bash 2 3clear 4javac -verbose -cp lib/opencv-455.jar:lib/libopencv_java455.so src/*.java -d bin # コンパイル 5if [ $? = "0" ] ; then 6 jar cvfm PDFConverter.jar manifest.mf -C bin ./ # .jarファイル生成 7 clear 8java -Djava.library.path=lib -jar Conveter.jar 9 else 10 echo 11 echo 12 13 echo " Compile Error" 14 15 echo 16 echo 17 fi
manifest.mf
Main-Class: Main Class-Path: lib/opencv-455.jar
回答1件
あなたの回答
tips
プレビュー