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

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

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

JAR(又はJava ARchive)はコンパイルされた複数のJavaバイトコード及び関連ファイルのリソースを一つのファイルに統合したものです。JARファイルはZIPファイルのフォーマットで構築されています。

Java

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

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

Apache Maven

Apache Mavenは、ソフトウェアプロジェクトの管理ツールです。

Q&A

解決済

1回答

4358閲覧

【JAVA】コマンドプロンプトよりビルドしたプログラム(jarファイル)の実行方法について

cocolemo

総合スコア3

JAR

JAR(又はJava ARchive)はコンパイルされた複数のJavaバイトコード及び関連ファイルのリソースを一つのファイルに統合したものです。JARファイルはZIPファイルのフォーマットで構築されています。

Java

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

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

Apache Maven

Apache Mavenは、ソフトウェアプロジェクトの管理ツールです。

0グッド

0クリップ

投稿2019/08/10 07:35

前提・実現したいこと

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

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

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

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

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

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

m.ts10806

2019/08/10 07:37

mvn -version の結果も追記願います
退会済みユーザー

退会済みユーザー

2019/08/10 07:39

hello.main.HelloWorld こんなクラスがないからじゃな
cocolemo

2019/08/10 12:05

mvnのバージョンは以下です。 C:\java\hello-world>mvn --version Apache Maven 3.6.1 Maven home: C:\apache-maven-3.6.1-bin\apache-maven-3.6.1\bin\.. Java version: 11.0.2, vendor: Oracle Corporation, runtime: C:\jdk-11.0.2 Default locale: ja_JP, platform encoding: MS932 OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
guest

回答1

0

ベストアンサー

・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 ではなく)

投稿2019/08/10 09:58

編集2019/08/10 12:57
mokemokechicken

総合スコア948

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

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

cocolemo

2019/08/10 12:06

記載いただいたコマンドを実施しても、同エラーとなってしまいました。
cocolemo

2019/08/10 13:06

ありがとうございます!!できました!! コマンドの意味は以下の認識であっていますか? java -classpath <カレントからjarファイルまでのパス\実行したいjarファイル名> <実行したいパッケージ名.クラス名>
mokemokechicken

2019/08/10 13:14 編集

たぶん、あってます。 ■ "-classpath <カレントからjarファイルまでのパス\実行したいjarファイル名>" jarは複数指定するときに windowsだと ; で、Linuxとかだと : になるので注意です。 https://qiita.com/tkhm/items/0f1b8680980e6cac9ae3 ■ <実行したいパッケージ名.クラス名> そうですね。 開始地点としてつかいたい static public void main() の(完全修飾)クラス名を指定する感じです。 ■ 余談 他にも 「実行可能jar」というのがあって、その場合は java -jar <jar path> とかで実行できます。 参考: https://qiita.com/tarosa0001/items/e019ec4daaaf54684c53
cocolemo

2019/08/10 13:27

ありがとうございます。助かりました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問