質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
87.20%
OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Java

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

解決済

「JAVA」マニュフェストファイルの書き方が知りたい。

samidare_chan
samidare_chan

総合スコア142

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Java

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

1回答

-3評価

0クリップ

730閲覧

投稿2022/04/21 02:03

編集2022/04/24 22:52

下記の画像はプロジェクトファイルです。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

import java.io.File; import org.opencv.core.Core; import org.opencv.core.CvType; import org.opencv.core.Mat; public class Main { public static void main(String[] args) { // OpenCVが使えるためのおまじない // 環境によってcan't load libraryのエラーが出る可能性がある // <解決策> // lib_pathに"opencv_java450.dll"を入れたフォルダの // 絶対パスを調べて、lib_folder.getAbsolutePath()の代わりに書きます // 例: String lib_path = "C:\\Users\\username\\workspace\\lib"; Mat mat = Mat.eye(3,3,CvType.CV_8UC1); // 作った行列の中身を確認します。 System.out.println("mat = " + mat.dump()); } }
run.sh

shell

#!/bin/bash clear javac -verbose -cp lib/opencv-455.jar:lib/libopencv_java455.so src/*.java -d bin # コンパイル if [ $? = "0" ] ; then jar cvfm PDFConverter.jar manifest.mf -C bin ./ # .jarファイル生成 clear java -Djava.library.path=lib -jar Conveter.jar else echo echo echo " Compile Error" echo echo fi
manifest.mf
Main-Class: Main Class-Path: lib/opencv-455.jar

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

m.ts10806

2022/04/21 02:15 編集

正しくパスを指定すればいいだけで、置き場所は自由にすればいいのでは? えっと、結局何も理解してないということで良いですか?
episteme

2022/04/21 02:13

実行時に -cp オプションでjarのパスを与えることができますが、そうしたくないってことですか?
samidare_chan

2022/04/21 02:22 編集

質問ですが.shファイルに-cpオブションで指定しているのですがなぜエラーになるのでしょうか? java -cp lib/opencv-455.jar:lib/libopencv_java455.so -jar PDFConverter.jar # .jar実行 等を試したが同じでした。
m.ts10806

2022/04/21 02:37

理由:理解せず雑にやるから
int32_t

2022/04/21 02:44

マニュアルに書いてありますが、-jar と -cp は併用できません。manifest.mf の中で正しく設定する必要があります。
samidare_chan

2022/04/21 02:45

なるほど。manifest.mdファイルではクラスパスを設定しましたが.soファイルはどうやって指定するのでしょうか?
m.ts10806

2022/04/22 04:02

そもそも今回あげているファイルそれぞれがなぜなんのために必要なのか理解してないと全く意味ないのでは? 本当に必要かどうかをどう判断しましたか?その根拠は?
samidare_chan

2022/04/22 04:05

一様ファイル構成を上げておくべきだと思いました。
m.ts10806

2022/04/22 04:07

「いちよう」は今回使える単語ではないです。日本語勉強しましょう(この指摘は一度や二度ではないはずだが)。 本当に必要なものだけをあげないとゴミだらけになりますが、 そこが判断できないから、”いちおう”全部あげたと? 作りたいものを知っているのはあなただけです。赤の他人には判断できません。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Java

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