レッスン:共通の問題(およびその解決策)

5858 ワード

レッスン:共通の問題(およびその解決策)

コンパイラの問題


Microsoft Windowsシステムの共通エラーメッセージ
'javac' is not recognized as an internal or external command, operable program or batch file
/* 'javac'  ,  */

このエラーを受信した場合は、Windowsでコンパイラ(javac)が見つからないことを示します.
Windowsがjavacをどこで探しているかを教える方法があります.JDKをC:jdk 6にインストールしたとします.コマンドラインに次のコマンドを入力し、Enterキーを押す必要があります.
C:\jdk6\bin\javac HelloWorldApp.java

このオプションを選択すると、プログラムをコンパイルまたは実行するたびに、javacとjavaコマンドの前にC:jdk 6binを追加する必要があります.追加の入力を避けるには、JDK 6のインストール手順の「PATH変数の更新」セクションを考慮します.
Class names, 'HelloWorldApp', are only accepted if annotation processing is explicitly requested
/*   'HelloWorldApp'   */

もしあなたがこのエラーを受信したら、プログラムをコンパイルするときに含むことを忘れたことを示します.JAva接尾辞.コマンドラインはjavac HelloWorldAppですJAvac HelloWorldAppではなくJAvaです.
UNIXシステムの共通エラーメッセージ
javac: Command not found
/* javac:  */

このエラーを受信すると、UNIXはコンパイラ(javac)を見つけることができません.
UNIXがjavacをどこで探しているかを伝える方法があります.JDKを/usr/local/jdk 6にインストールしたとします.コマンドラインに次のコマンドを入力し、Returnキーを押す必要があります.
/usr/local/jdk6/javac HelloWorldApp.java

ヒント:このオプションを選択すると、プログラムをコンパイルまたは実行するたびに、javacとjavaコマンドの前にusr/local/jdk 6/を追加する必要があります.追加の入力を避けるには、この情報をPATH変数に追加することができます.このタスクの完了手順も異なり、現在実行されているコマンド解釈器に依存します.
Class names, 'HelloWorldApp', are only accepted if annotation processing is explicitly requested
/*   'HelloWorldApp'   */

このエラーを受信すると、コンパイラに含まれることを忘れた可能性があります.JAva接尾辞.コマンドはjavac HelloWorldAppですJAvac HelloWorldAppではなくJAvaです.
構文のエラー(すべてのプラットフォーム)
プログラムの一部を誤って入力すると、コンパイラは文法エラーを発行します.このメッセージには、エラーのタイプ、エラーが検出された行番号、行全体のコード、およびコード内のエラー位置がよく表示されます.ここでは、文の終端部分を無視したセミコロン(;)エラー:
testing.java:14: `;' expected.
System.out.println("Input has " + count + " chars.")
                                                     ^
1 error

コンパイラは、あなたの目的を推測し、1つ以上のあいまいなエラーメッセージを印刷できない場合があります.エラーがいくつかのコード行を上書きしている場合は、たとえば、次のコード・スライスは、行の1つでセミコロン(;):
while (System.in.read() != -1)
    count++
System.out.println("Input has " + count + " chars.");

このコードを処理すると、コンパイラは2つのエラーメッセージを発行します.
testing.java:13: Invalid type expression.
        count++
                 ^
testing.java:14: Invalid declaration.
    System.out.println("Input has " + count + " chars.");
                      ^
2 errors

コンパイラはcount++を処理するときに、コンパイラステータスがこのエラーが式の真ん中にあることを示すため、2つのエラーメッセージを発行します.そしてセミコロンがなければ、コンパイラは文が終わったことを知ることができません.
コンパイラエラーが見つかった場合、プログラムのコンパイルに成功せず、コンパイラも作成しません.classファイル.プログラムを慎重に検証し、発見できるエラーを修復し、コンパイルを再試行する必要があります.
セミコロンのエラー
あなたのプログラムの文法が正しいかどうかをチェックするほか、コンパイラは他の基本的な内容が正しいかどうかをチェックします.たとえば、コンパイラは使用する変数が初期化されていないことを毎回注意します.
testing.java:13: Variable count may not have been initialized.
        count++
        ^
testing.java:14: Variable count may not have been initialized.
    System.out.println("Input has " + count + " chars.");
                                       ^
2 errors

あなたのプログラムはコンパイルに成功せず、コンパイラも作成しません.classファイル.これらのエラーを修正して再試行する必要があります.

実行時の問題


Microsoft Windowsシステムのエラーメッセージ
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorldApp

このエラーを受信した場合、javaはバイトコードファイルを見つけることができません.class.
Javaはあなたを検索するために使用されます.classファイルの場所はあなたの現在のディレクトリです.だからもしあなたがclassファイルはC:javaにあるので、現在のディレクトリに変更する必要があります.ディレクトリを変更する場合は、コマンドラインに次のコマンドを入力し、Enterキーを押します.
cd c:\java

コマンドラインはC:java>になるはずです.コマンドラインにdirを入力すると、あなたが見えるはずです.JAvaと.classファイル.コマンドjava HelloWorldAppを再入力します.
まだ問題が見つかっている場合は、CLASSSPATH変数を変更する必要があります.これが必要であることを理解するには、次のコマンドを使用してclasspathの修復を試します.
set CLASSPATH=

Java HelloWorldAppを再入力します.プログラムが動作している場合は、CLASSSPATH変数を変更する必要があります.この変数を設定する場合は、JDK 6インストール手順の[PATH変数の更新]セクションを参照してください.CLASSSPATH変数の設定は同じです.
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorldApp/class

初心者のプログラマーが犯した共通の間違いは、コンパイラによって作成しようとしたことだ.classファイルでjavaキャリアを実行します.例えばjava HelloWorldAppを試してみるとclassがjava HelloWorldAppの代わりにプログラムを実行すると、このエラーが発生します.パラメータは、ファイル名ではなく、使用したいクラス名であることを覚えておいてください.
Exception in thread "main" java.lang.NoSuchMethodError: main

Java VMでは、実行するクラスにmainメソッドを使用してアプリケーションの実行を開始する必要があります.〔ハローワールドを間近で観察!アプリケーション〕mainメソッドを詳細に議論した.
UNIXシステムのエラーメッセージ
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorldApp 

このエラーを受信すると、javaはバイトコードファイルを見つけることができません.class.
Javaがバイトコードファイルを検索しようとする場所が現在のディレクトリです.たとえば、バイトコードファイルが/home/jdoe/javaにある場合は、現在のディレクトリに変更する必要があります.ディレクトリを変更するには、コマンドラインに次のコマンドを入力し、Returnキーを押す必要があります.
cd /home/jdoe/java

コマンドラインにpwdを入力すると、/home/jdoe/javaが表示されます.コマンドラインにlsを入力すると、あなたが見えるはずです.JAvaと.classファイル.Java HelloWorldAppを再入力します.
まだ問題がある場合は、CLASSSPATH環境変数を変更する必要があります.これが必要であることを理解するには、次のコマンドを使用してclasspathの修復を試します.
unset CLASSPATH

Java HelloWorldAppを再入力します.プログラムが動作している場合は、上のPATH変数と同じようにCLASSSPATH変数を変更する必要があります.
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorldApp/class 

初心者のプログラマーが犯した共通の誤りはコンパイラによって作成されたものである.classファイルでjavaキャリアを実行します.例えばjava HelloWorldAppを試してみるとclassがjava HelloWorldAppに代わってプログラムを実行すると、このエラーが発生します.パラメータは、ファイル名ではなく、使用したいクラス名であることを覚えておいてください.
Exception in thread "main" java.lang.NoSuchMethodError: main 

Java VMでは、実行するクラスにmainメソッドを使用してアプリケーションの実行を開始する必要があります.〔ハローワールドを間近で観察!アプリケーション]ではmainメソッドについて詳しく論じた.