Javaソースファイルをコピーする場合は、次のことを行う必要があります。
- ソースファイルを開きます。
- 宛先ファイルを開きます。
package
キーワードが表示されるまで、ソースから宛先にすべてをコピーします。
- packageキーワードを宛先ファイルにコピーします。
- 「正しい」パッケージの場所を宛先ファイルに書き込みます
- ソースファイル内の「誤った」パッケージの場所をスキップします
- ソースファイルの残りの内容を宛先ファイルに書き込みます。
これにより、ファイルのパッケージが正しく「リベース」されることに注意してください。ただし、「古い」パッケージでそのファイルを見つけることを期待する可能性のある他のファイルを「リベース」することはできません。これらの他のファイルを修正するには(存在する場合、おそらくプロジェクトがそれほど多くの参照を持たないように設計されているか、すべてのファイルをコピーする予定です)、プロジェクト内の各ファイルを開いて、で「移動」クラスを探す必要があります。import
ステートメント。見つかった場合は、インポートをコピーするのではなく、正しい置換でコピーする必要があります。
実際には「移動」しないが変更が必要なファイルを操作する場合は、一時ファイルを作成し、一時ファイルが完全に書き込まれた後で元のファイルを一時ファイルに置き換えるのが最善の方法です。そのようです:
(reading) MyClass.java
(writing) .tempMyClass.java
(done writing)
(moving) .tempMyClass.java to MyClass.java
これにより、読み取る必要のある場所を過ぎてファイルに書き込むなど、多くの厄介な項目に制約されないようにすることができます(これにより、読み取る前に必要な情報が破壊されます)。
パッケージjava.io
とクラスjava.lang.String
には、これらのツールを作成するためのすべてのユーティリティが含まれていますが、詳細を説明するには、投稿が長すぎます。少し書いてみて、行き詰まったらWebを検索して(javaを使用してファイルから行を読み取る方法、javaを使用してファイルに行を書き込む方法)、取得した距離と特定のコードを投稿してくださいエラーや誤解、そして多くの人々が喜んでお手伝いします。
コンパイル済みのファイルに対してこれを実行する場合は、Javaクラスのファイル形式を少し読んで、クラス名の定数文字列を見つけ、上記と同様の手順で変更する必要があります(バイナリを書き込む場合を除く)バイト)、またはASMのようなライブラリを使用して、上記と同じ手順を実行できます(ただし、手動で実行する場合の間違いを防ぐことができます)。