私はというHello Worldプログラムを持っています。A.クラスです。コマンドjavac A.java
を使用してコンパイルされました。それは印刷"こんにちは世界"です。コンパイル済みコードでJavaコンパイラが行番号を生成する方法
次に、javac -g A.java
を使用してコンパイルしました。私は行番号を見ることを期待していますが、見ることはできません。何が起こったのか?
コンパイルされたjavacの.classファイルとコンパイルされたjavacの間で、いくつかの種類の特殊文字に小さな違いがあります。しかし、私は行番号を見ることができません。
私の好奇心は、パフォーマンスにどのような影響が及ぶかを知りたいからです。次に、log4jなどがロギングの行番号をどのように維持しているかを知りたい。ありがとう。
-gデバッグ情報を生成するためのものです。クラスファイルはバイトコードであり、人間が読むことはできません。 javapを使ってクラスファイルを逆アセンブルすることができます。 – OldProgrammer
実際に '.class'ファイルの内容を質問に貼り付けましたか?本当にやったことはありますか?そして私が尋ねることができるなら、なぜあなたはそれを2回したのですか? –
最初はjavacを使用しています。 2番目はjavac -g <<<でコンパイルされます。 "g"に注目してください。行番号なし! Javapは素晴らしいですが、まだ行番号はありません! –