私は Java の初心者で、ばかげているように聞こえるかもしれない基本的な質問をしているかもしれません。
Main Java クラスをコンパイルした後、ほとんどのサブクラスが $ としてフォルダに表示されます。コンパイルしたクラスをコピーし、別の場所に置いて実行します。メインクラスまたはサブクラスの 1 つを変更するたびに、関連するすべてのサブクラスをコピーする必要がありますか? または、変更されたものをコピーするだけで十分ですか?
ありがとう。ニック
私は Java の初心者で、ばかげているように聞こえるかもしれない基本的な質問をしているかもしれません。
Main Java クラスをコンパイルした後、ほとんどのサブクラスが $ としてフォルダに表示されます。コンパイルしたクラスをコピーし、別の場所に置いて実行します。メインクラスまたはサブクラスの 1 つを変更するたびに、関連するすべてのサブクラスをコピーする必要がありますか? または、変更されたものをコピーするだけで十分ですか?
ありがとう。ニック
変更をコピーします。
通常、IDE(Netbeansなど) /ビルドシステム(Ant / Mavenなど)にこれを実行させます。または、実行可能なjarファイルを作成して、コピーするファイルを1つだけにすることもできます。
ニック、
ネストされたクラスを参照していますか?その場合、コンパイルされたクラスファイル名に「$」が含まれます。コードの変更が親クラスのみに対するものであると仮定すると、ネストされたクラスのバイトコードは再コンパイル中に変更されるべきではありません。メインの.classファイルのみをコピーするように機能するはずです。ただし、すべてをコピーすることは明らかに保証です。
含まれているクラス名$
は、ネストされた/匿名クラス用です。
そして、この Stackoverflow questionを参照してください。
しかし、それだけではありません。OP の引用I copy the complied classes and put it on another location to execute.
- このタスクを自動化し、 や などの従来の Java ビルド ツールのいずれかを使用する必要があるようAnt
ですMaven
。
これはサブクラス化(class Y extends X {}
)、またはネストされたクラス(class Y { class X {} }
)に関するものですか?
あなたが言及していることは後者を示しているようです。$
その場合、おそらくすべてをコピーする必要がありますが、サブクラス化するだけの場合は、変更したファイルのコンパイル済みバージョンをコピーするだけでおそらく問題ありません。