-8

Javaクラスを認識して「これはJavaクラスです」と出力するJavaアプリケーションを作成する必要があります。クラスにエラーがあるか、別の言語からのものである場合は、「これはJavaクラスではありません」と出力します。

助けてください。

提案とソースコードは大歓迎です。

4

3 に答える 3

5

Java の規則に従ってクラスを解析し、実際に Java の有効なクラスであることを確認するには、おそらくコンテキスト フリー グラマーが必要です。

JavaCCは、この機能を提供するライブラリの 1 つです。

あなたが説明している部分は、コンパイルの理論上、プログラムが有効であることを確認することです。これは、プログラムをコンパイルする最初のステップであり、(コンパイラの)フロント エンドとしても知られています。それがどのように行われるかについてより理論的な知識が必要な場合は、以下について検索することをお勧めします。

  1. 字句解析
  2. 構文解析
  3. 意味分析
于 2012-07-17T05:34:34.383 に答える
1

おそらく最速の方法は、Java Compiler Api を使用して、実行時にクラスをコンパイルすることです。コンパイルされた場合、結果は成功です。そうでない場合、それがエラーによるものなのか、それとも他の言語によるものなのかを判断するのは困難です。

于 2012-07-17T05:37:06.137 に答える
0

Class.forName("classname")たぶん、それをロードするために使用できます。例外が発生した場合、それはクラス ファイルではありません。

非常に単純なアプリケーションの場合は、ファイルをストリームとして取得できます。最初の 32 ビット データが でない0xCAFEBABE場合、それはクラス ファイルではありません。0xCAFEBABEクラスファイル定義にあるマジックナンバーです。

于 2012-07-17T07:18:05.597 に答える