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

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

新規登録して質問してみよう
ただいま回答率
85.40%
コマンドプロンプト

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

ビルド

ソースコードを単体で実行可能なソフトウェアへ変換する過程をビルド(build)と呼びます

Gradle

Gradleは、ビルド自動化ツールです。 ソフトウェアパッケージやドキュメント、 または実際に何か他の種類のプロジェクトの構築、テスト、公開、展開などを自動化が出来ます

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

Q&A

解決済

1回答

15035閲覧

Spring BootでJARのビルドと実行ができません

Sean2014

総合スコア59

コマンドプロンプト

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

ビルド

ソースコードを単体で実行可能なソフトウェアへ変換する過程をビルド(build)と呼びます

Gradle

Gradleは、ビルド自動化ツールです。 ソフトウェアパッケージやドキュメント、 または実際に何か他の種類のプロジェクトの構築、テスト、公開、展開などを自動化が出来ます

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

2グッド

0クリップ

投稿2020/04/13 10:44

Spring Bootでのファイルのアップロードのやり方を確認するために、チュートリアルページ(https://spring.io/guides/gs/uploading-files/#initial)を読んでいるのですが、Run the ApplicationのBuild an executable JARの項目がよくわかりません。

チュートリアルのページのリンクからファイルをダウンロードし、指定された各ファイルをページ内のサンプルコードと同様の内容になるようにコピペした上で、Build an executable JARの所で書かれているように./gradlew bootRunと入力するのですが、プログラムを実行できない、という状況です。

具体的には、コマンドプロンプトでGradleファイルのあるディレクトリ(僕のPC環境では

C:\Users\marra\Documents\workspace-spring-tool-suite-4-4.5.1.RELEASE\ImgUpload\gs-uploading-files\initial

)までcdコマンドで移動し、そこで./gradlew bootRunと記入してエンターボタンを押すのですが、BUILD FAILEDというエラーが出て終わりになってしまいます。

ここで疑問点が2つ挙がってきます。

・まず第一に、そもそも僕はチュートリアルの指示に従ってプログラムを実行できているのでしょうか?つまり、「上記のディレクトリに移動して./gradlew bootRunと記入してエンターボタンを押す」という操作で合っているのでしょうか?これが違うのだとしたら、このチュートリアルで書かれている”you can run the application by using ./gradlew bootRun”とは具体的にどのような操作をする事を指すのでしょうか?

・第二の可能性として、チュートリアルの指示には従えているにもかかわらずエラーが出ているのだとしたら、どの部分がおかしいのでしょうか?プログラムの実行が失敗する際には
Execution failed for task ':compileJava'. > Compilation failed; see the compiler error output for details.

というエラーメッセージが出てきます。
https://github.com/realm/realm-java/issues/5910など、調べて出てきたページでは「こういうエラーはコンパイルエラーがどこかにある場合に出る」と言われています。もしかしたらチュートリアルのサンプルコードを上手く全部コピペできてなかったのかもしれませんが、エラーの原因を探すためにプロジェクト内のどのフォルダのどのファイルを身てば良いのかがわかりません。./gradlew bootRunを--debugモードでもう一度実行してみたのですが、赤文字でFAILEDと出ていたのは以下の記述でした。

13:28:20.806 [LIFECYCLE] [class org.gradle.internal.buildevents.TaskExecutionLogger] > Task :compileJava FAILED

13:28:21.249 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] FAILURE: Build failed with an exception.

13:28:21.250 [ERROR] [org.gradle.internal.buildevents.BuildResultLogger] BUILD FAILED in 6s

せめて「どこに着目すべきか」や、「正常であれば〇〇の部分が★★になっているはず。それが××になっているという事は△△の部分に何らかの異常がある可能性が考えられる」という具合に、問題点の絞り込みだけでもできればと思います。

furitetepporaa, sonotasan2017👍を押しています

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

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

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

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

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

rubytomato

2020/04/13 13:32

次のコマンドの実行結果を教えてください。 java -version gradlew --version
Sean2014

2020/04/13 17:56

java --versionは openjdk version "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) gradlew --versionは bash: gradlew: command not found と表示されます。ただ、先ほどチュートリアルのページに最初から全部完成しているCompleteというバージョンもあったのに気づき、C:\Users\marra\Documents\workspace-spring-tool-suite-4-4.5.1.RELEASE\ImgUpload\gs-uploading-files\completeのディレクトリに移動しなおして./gradlew bootRunとしたら問題なくローカルホストが立ち上がりました。プロジェクト内のファイルにどこか記述のおかしな所があったのかな?と思います。
rubytomato

2020/04/14 11:16

> gradlew --versionは > bash: gradlew: command not found Windows環境だとおもったのですが、WSLやmingwなどのlinux環境で実行されたということでしょうか? Windows環境であればプロジェクトルートでコマンドプロンプトを開いて実行してみてください。(gradlew.batファイルがある場所で) とはいえ、completeディレクトリでビルドできたということなので、gradleの環境周りに原因があるわけではないようですね。 おそらくinitialディレクトリ下のファイルを編集する過程で問題が起きたのではないでしょうか? ファイル編集に問題があったのか、環境周りに問題があるのか確認するには、もう一度プロジェクトをダウンロードするところからやり直して、initialディレクトリ下のファイルを編集する前に、gradlew bootRunでビルドが成功するかどうか確認してください。 これでビルドが成功するようであれば環境周りには問題ないということだと思います。
Sean2014

2020/04/15 12:32

Windowsに元々備え付けられていたコマンドプロンプトで上手くいかなかったのでGitBashを使って実行していました。 そしてプロジェクトをダウンロードをしなおして編集せずにgradlew bootRunでビルドを試した所、普通にビルドOKでした(ローカルホストは立ち上がるが、編集前でファイル内に必要な記述が不足しているためブラウザにはエラーが表示されるという状態)。 環境周りではなく、単なるファイル編集の問題っぽいですね。 おかげさまでだいぶ問題の絞り込みができました。アドバイスありがとうございました!
Sean2014

2020/04/15 12:37

もしよろしければ、これまでの内容のコピペでもよいので回答欄にも記述いただけますでしょうか。せっかくいただいたアドバイスですし、高評価を入れたりベストアンサーに選んだりさせていただきたいと思います。
rubytomato

2020/04/15 15:04

解決済みですが、お言葉に甘えて回答しました。 gradlewのオプションについて少し補足しましたのでお時間あればご確認ください。
guest

回答1

0

ベストアンサー

問題の切り分け

completeディレクトリでビルドできたということなので、gradleの環境周りに原因があるわけではないようですね。
おそらくinitialディレクトリ下のファイルを編集する過程で問題が起きたのではないでしょうか?

ファイル編集に問題があったのか、環境周りに問題があるのか確認するには、もう一度プロジェクトをダウンロードするところからやり直して、initialディレクトリ下のファイルを編集する前に、gradlew bootRunでビルドが成功するかどうか確認してください。
これでビルドが成功するようであれば環境周りには問題ないということだと思います。

gradlew --version について

以下は私の環境での出力結果です。質問内容に以下の内容が記載されていると原因の推測に役に立つことがあります。

> gradlew --version ------------------------------------------------------------ Gradle 5.6.3 ------------------------------------------------------------ Build time: 2019-10-18 00:28:36 UTC Revision: bd168bbf5d152c479186a897f2cea494b7875d13 Kotlin: 1.3.41 Groovy: 2.5.4 Ant: Apache Ant(TM) version 1.9.14 compiled on March 12 2019 JVM: 1.8.0_241 (Oracle Corporation 25.241-b07) OS: Windows 10 10.0 amd64

その他のオプション

問題がおきたときに使用することがあるオプション

デバッグログを出力する

--debugオプションを指定するとデバッグレベルのメッセージが出力されます。
ただしかなりの量のメッセージが出力されるので、どうしても原因が分からない場合に指定するといいと思います。

> gradlew --debug bootRun

スタックトレースを出力する

エラーが起きるということがわかっている場合に--stacktraceオプションを指定するとスタックトレースだけが出力されます。

> gradlew --stacktrace bootRun

--full-stacktraceを指定するとより詳細な情報が出力されます。

> gradlew --full-stacktrace bootRun

依存関係をリフレッシュする

新しく追加した依存ライブラリが解決できないときなどに指定します。

> gradlew --refresh-dependencies bootRun

また、-i-mを併用すると依存ライブラリのダウンロードの情報を確認できます。

> gradlew -i -m --refresh-dependencies bootRun

投稿2020/04/15 15:02

rubytomato

総合スコア1752

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

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

Sean2014

2020/04/15 18:25

ご回答ありがとうございます! 丁寧な補足もしていただき非常に参考になりました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.40%

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

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

質問する

関連した質問