【はじめてのJava】うまく動かないときの対処方法一覧【コラム】
はじめてのJava
このシリーズでは、初めてJavaやプログラミングを勉強する方向けに、Javaによるプログラミングの基礎を説明していきます。
目標レベルは、Javaの資格試験の一つである「Oracle Certified Java Programmer, Silver」(通称Java Silver)に合格できる程度の知識の習得です。
はじめてJavaやプログラムに触れる方にもできるだけわかりやすい解説を心がけていきます。
コラム
コラムでは本編の補足などをしていきます。
この記事では、エラーが出て上手く動かないときのよくある原因と対処方法の解説をします。
Javaのプログラム作成時の記事はこちら
エラーメッセージについての記事はこちら
目次
原因と対処方法
問題の原因や対処方法は下記の通りです。
コンパイル時点で問題が起こる場合
コンパイルで時点で失敗している場合のよくある原因は以下の通りです。
- JDKのインストール/設定に失敗している場合
- コンパイル時のファイル名に.javaが抜けている場合
- カレントディレクトリやファイル名が間違っている場合
- ファイル名の指定を忘れている場合
- コンパイルエラーがある場合
JDKのインストール/設定に失敗している
JDKのインストールかパスの設定に失敗しているため、コンパイルを行うためのJavacコマンド自体に失敗しています。
JDKのインストールやPATHの設定に問題がないかどうかもう一度確認してください。
コンパイル時のファイル名に.javaが抜けている
コンパイルで指定しているファイル名から.javaが抜けているためコンパイルが行われません。
コンパイルするファイルは.javaまで含めたファイル名で指定します。
カレントディレクトリやファイル名が間違っている
カレントディレクトリやファイル名が間違っているためコンパイルに失敗します。
カレントディレクトリがあっているかどうかはWindowsならdirコマンド、LinuxやMacならlsコマンドで確認します。
以下のように、コンパイルしたい.javaファイルが表示された場合はカレントディレクトリはあっています。ファイル名の打ち間違いに注意しながらもう一度コンパイルを行います。
もしコンパイルしたい.javaファイルが表示されない場合はカレントディレクトリが違うので、cdコマンドを利用してカレントディレクトリをソースコードが保存されているディレクトリに変更します。
ファイル名の指定を忘れている
コンパイル対象のファイル名を入力し忘れたためコンパイルに失敗しています。
コンパイル時にはコンパイル対象のファイルを.javaまで含めたファイル名で指定します。
コンパイルエラーがある
コンパイルエラーがあるためコンパイルに失敗しています。
エラーメッセージの内容を確認しコンパイルエラーの原因を修正後改めてコンパイルを行います。
実行時に問題が起こる場合
コンパイルは成功したが実行に失敗した場合のよくある原因は以下の通りです。
- JDKのインストール/設定に失敗している場合
- 実行時のクラス名に誤って.classまで付けている場合
- 実行時に誤って.javaファイルを指定している場合
- カレントディレクトリやファイル名が間違っている場合/コンパイルに失敗している場合
- ファイル名の指定を忘れている場合
- mainメソッドに問題がある場合
JDKのインストール/設定に失敗している
JDKのインストールかパスの設定に失敗しているため、コンパイルを行うためのJavaコマンド自体に失敗しています。
JDKのインストールやPATHの設定に問題がないかどうかもう一度確認してください。
コンパイルができた場合は原因として考えづらいですが、例えばコンパイルしたコンピュータと違うコンピュータで実行した場合などは考えられます。
実行時のクラス名に誤って.classまで付けている
実行で指定しているクラス名に.classがついているため実行に失敗しています。
実行時には .classはつけません 。
実行時に誤って.javaファイルを指定している
実行で指定しているクラス名に誤って.javaがついているため実行に失敗しています。.classを付けた時とエラーメッセージが異なります。
実行時には .javaはつけません 。
カレントディレクトリやファイル名が間違っている場合/コンパイルに失敗している場合
カレントディレクトリやファイル名が間違っているため実行に失敗します。
カレントディレクトリがあっているかどうかはWindowsならdirコマンド、LinuxやMacならlsコマンドで確認します。
以下のように、実行したい.classファイルが表示された場合はカレントディレクトリはあっています。クラス名の打ち間違いに注意しながらもう一度実行します。
もし実行したい.classファイルが表示されない場合は以下のどちらかです。
・カレントディレクトリが違う
→cdコマンドを利用してカレントディレクトリを変更します。
・コンパイルに失敗している
→カレントディレクトリをソースコードが保存されたディレクトリに変更しコンパイルを実行します。
ファイル名の指定を忘れている
実行時には実行対象のクラスを .class無しで指定 します。
mainメソッドに問題がある
エラーメッセージにはmainメソッドがないと書いてありますが、実際にはmainメソッドは書いてあるが書き方がおかしいので失敗していることも多いです。
mainメソッドが書いてあるか確認し、書いてある場合はJavaのmainメソッドとして正しい形になっているかを確認してください。
mainメソッド作成時のよくある間違いはこちらにまとめてありますので併せて確認してみてください。
実行中に例外やエラーが起こる場合
コンパイル、実行ともに成功するものの、実行中に何かが起こってしまう場合は以下の2つのどちらかになります。
実行時例外が発生している
Exception…で始まり Exceptionで終わっている 場合は実行時例外が発生しています。
実行時例外の場合は ソースコード上の実行時例外が発生した場所 と 発生した内容 をもとに原因を特定します。
原因が特定できたらソースコードの修正やデータの訂正を行い再度コンパイル、実行を行います。
エラーが発生している
Exception…で始まり Errorで終わっている 場合はErrorが発生しています。
Errorの場合はソースコードに原因がない場合も多いです。 エラーの名前 から何が起こっているのかを確認し対応方針を考える必要があります。
ErrorはJavaにとって致命的な問題の場合も多いです。開発では原因の究明が必要ですが、学習を進める場合は「頻発しないのであれば無視する」のが現実的な対処法です。
ポイント
発生した問題を正確に把握すると素早い原因究明と解決につながります。
はじめてのJavaシリーズの記事一覧はこちら
シリーズ全記事一覧
環境構築編
プログラムの作り方編
データ型と変数編