2

私はこの質問にとても興味があります。

javac ie を使用して .java ファイルをコンパイルすると、. javac JavaFileName.javaJavaFileName.classファイルが作成されます。しかし、コマンド プロンプトで java コマンドを使用してこの Java プログラムを実行すると、次のように記述されjava JavaFileNameます。

java私の質問は、コマンド プロンプトから Java プログラムを実行するときにどのファイルがコマンドに渡されるかということです。

使用する場合.class file、なぜエラーが発生するのかjava JavaFileName.class

4

4 に答える 4

4

あなたが指名しているファイルではありません。代わりにclassを指定すると、Java は のエントリを使用してclasspathこれを見つけます。

classpathディレクトリまたは .jar/.zip が含まれ、Java はこれらを順番に検索します。

明らかに、ディレクトリの場合、指定されたクラスとファイルの間にマッピングがあります。これは、.jar/.zip にも当てはまります。Java は対応するエントリを探します。

例えば

   java a.b.c.D

ファイルまたは .jar エントリが検索されますa/b/c/D.class

于 2012-08-22T09:55:54.267 に答える
1

実行されるのは .class です。文字どおりに記述しないでください。

于 2012-08-22T09:54:37.980 に答える
0

コマンドライン引数で Java に渡されるのはファイル参照ではありません。これは、完全修飾クラス名 (つまり、org.exemple.MyClass) です。Java は、クラスパス内の一致する .class ファイルを調べ、存在する場合は main() メソッドを呼び出します。

于 2012-08-22T10:00:11.233 に答える
0

.classファイルを実行します。
あなたが書くとき

java MyClass

コマンドが実行されるフォルダーでファイルMyClass.classを検索するため、次のように記述します。

java my.package.MyClass

サブフォルダー./my/package/MyClass.classでファイルを検索し、最後に次のように記述します。

java MyClass.class

ファイル./MyClass/class.classを検索します

そのため、エラーが発生します。

于 2012-08-22T12:29:53.987 に答える