ryuoh7878
@ryuoh7878

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

jarファイルの実行について

解決したいこと

プログラミング初心者です。
パッケージをJARファイルにまとめて実行しようとした所、
エラーが発生しました。解決策を教えて頂きたいです。

ファイル構成は以下の通りです。
jarフォルダ
 ├ main.jar
 ├ toy.jar
 ├ transport.jar
 ├ mainフォルダ
 ├ Toyフォルダ
 └ Transportフォルダ

jar以下の各フォルダには、それぞれのパッケージのクラスファイルが入っています。

発生している問題・エラー

java -cp main.jar:toy.jar:transport.jar main.Main2
エラー: メイン・クラスmain.Main2を検出およびロードできませんでした
原因: java.lang.ClassNotFoundException: main.Main2

該当するソースコード

java -cp main.jar:toy.jar:transport.jar main.Main2

自分で試したこと

スペルミス等は考えられません。

0

2Answer

-cp オプションに複数のクラスパスを渡すときの区切り文字は、 Windows ではセミコロン ; にしてください。

0Like

Comments

  1. @ryuoh7878

    Questioner

    指摘いただいた個所を変更後、再度実行しましたが同じエラーが発生しました。
    何か根本的な問題でしょうか。

main.Main2のようなクラスファイルを実行する際はクラスパスにmainのルートディレクトリ(mainが属するフォルダ)を指定します
ここでのmainMain2のパッケージと同義です

java -cp mainのフォルダ:file.jar… main.Main2

また、ファイルの区切り文字はWindowsでは;
Linuxでは:を用います
なお今回のようにjarを実行する際は、-jarオプションの指定が推奨されます

java -jar ./main.jar

jarを構成する際は.mfに少なくとも以下の二つのオプションを要します

Main-Class: main.Main2
Class-Path: file.jar…

Class-Pathには相対パスを用います

0Like

Your answer might help someone💌