質問: ### 前提・実現したいこと mavenにてビルドしたjarファイルをコマンドプロンプトで実行し、"HelloWorld"と表示したい。 java、maven初心者です。 下記サイトを参考にHelloWorldのプログラムを作成しました。 [5.4 mavenを使用したビルド]のところまではできたのですが、 下記記載内容のところのやり方がわからないです。 > > こちらをコマンドプロンプトで実行すれば、Hello Worldが実行できます。 > > 今回は、エントリポイントを指定した実行可能jarファイルとしてビルドはしていないので、以下のコマンドで実行してください。 > > コマンド:java -classpath hello-world-0.0.1-SNAPSHOT.jar hello.main.HelloWorld > > > <参考サイト> https://qiita.com/tarosa0001/items/e5667cfa857529900216 ### 発生している問題・エラーメッセージ コマンドプロンプトで実行した結果は以下の通りです。 ``` C:\java\hello-world>java -classpath hello-world-0.0.1-SNAPSHOT.jar hello.main.HelloWorld エラー: メイン・クラスhello.main.HelloWorldを検出およびロードできませんでした 原因: java.lang.ClassNotFoundException: hello.main.HelloWorld ``` ・jarファイルの格納先 C:\java\hello-world\target\hello-world-0.0.1-SNAPSHOT.jar ・javaファイルの格納先 C:\java\hello-world\src\main\java\hello ・プロジェクト名;hello-world ・パッケージ名:hello ・クラス名:HelloWorld ### 試したこと ・eclipseの実行では、HelloWorld.javaは問題なく動いています。 ・eclipse、コマンドプロンプトの両方からmvn installを実行しましたが、どちらも問題なくBUILD SUCCESSと表示され、jarファイルが作成されていることを確認しています。 ### 補足情報(FW/ツールのバージョンなど) 本事象に関係あるかはわかりませんが、エクリプスに以下の警告が表示されています。 > > 引用テキストビルド・パスは実行環境 JavaSE-1.8 を指定しています。この環境と厳密に互換性のあるワークスペースにインストールされた JRE がありません。 > > 指定されたコンパイラー準拠は 1.8 ですが、JRE 11 が使用されています 。 > > > JDKについては、環境変数にてJAVA_HOMEとPathを設定しただけでそのほかは何も設定していません。 ``` C:\java\hello-world>java --version openjdk 11.0.2 2019-01-15 OpenJDK Runtime Environment 18.9 (build 11.0.2+9) OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode) C:\java\hello-world>javac --version javac 11.0.2 ```
回答: > > ・jarファイルの格納先 C:\java\hello-world\target\hello-world-0.0.1-SNAPSHOT.jar > > > であり、 current dir が `C:\java\hello-world` なら ``` C:\java\hello-world>java -classpath target\hello-world-0.0.1-SNAPSHOT.jar hello.main.HelloWorld ``` なんじゃないでしょうか? ■ 追記1 あ、 * パッケージ名:hello * クラス名:HelloWorld ならば、 ``` C:\java\hello-world>java -classpath target\hello-world-0.0.1-SNAPSHOT.jar hello.HelloWorld ``` ですかね。 ( `hello.main.HelloWorld` ではなく)