-5

Windows と Java SE 7 を使用しています。

私が作成したクラスは でTestPerson、名前を付けて保存しましたTestPerson.java

しかし、コンパイルが成功したと言ってコンパイルしようとすると、大文字と小文字が正確に一致して作成されますjavac testperson.javaTestPerson.class

しかし、Java では大文字と小文字が区別されますよね。

なぜこれが起こっているのですか?大文字と小文字を間違えると、エラーが表示されます。具体的な理由はありますか?ただし、実行時にエラーが表示されます。

4

3 に答える 3

9

Java では大文字と小文字が区別されますが、Windows ファイル システムでは区別されない場合があります。

同じ名前 (大文字と小文字を区別しない) を持つ 2 つのクラスがない限り、問題にはなりません。Java は技術的にはそのようなこと (クラス Hello とクラス HELLO) を許可していますが、それは積極的にトラブルを求めているだけです。ASCII 以外のクラス名や非常に長いクラス名の場合も同様です (これも Java では問題ありませんが、クラス ファイルを格納する必要があるファイル システムではそうではない可能性があります)。

于 2013-07-11T10:06:27.393 に答える
1

javacファイルシステムで呼び出されたファイルを探していtestperson.javaます。(おそらく) Windows ファイルシステムは大文字と小文字を区別しないTestPerson.javaため、testperson.java. Javac は、これが発生したことを本質的に認識していません。ファイルを要求し、それを受け取りました。

この場合、Java は何をすると思いますか? 大文字と小文字が区別され、2 つのファイル名の扱いが異なりますしかし、不透明な外部システムが 2 つの異なるファイル名を同じものとして扱っても、それを非難することはできません。

于 2013-07-11T10:10:26.977 に答える
0

こちらに関しては問題ありませんJava。Javaコードではなくコマンドを使用しているため、この結果はJavaの大文字と小文字の区別によるものではありません。

Windowsで以下を試してください

cd Desktop

cd desktop

どちらも同じように機能しています。あなたの場合、これに似ています

于 2013-07-11T10:12:25.373 に答える