javac
を使用してコンパイルすると(ただし、を使用して起動しない場合java
)、任意のコードが実行されるように Java ソース ファイルを構成することはできますか?
または、任意のソース ファイルを実行しても安全であると想定できますjavac
か?
私は実際にこの機能を使用したことはありませんが、javac は注釈プロセッサを実行できます。これは、任意のコードを突っ込んでいると思われます。プロセッサはプロセッサ パスに存在する必要があります。デフォルトでは、プロセッサ パスは単なるユーザー クラス パスです。したがって、ユースケースにもよりますが、これはセキュリティ上の懸念事項であり、注意が必要です。おそらく、注釈処理が で無効になっていることを確認-proc:none
するか、その他の予防策を講じる必要があります。
Javac マニュアルの注釈処理セクションを参照してください。
javac
ソースファイルの設定に関係なく、Java を実行することはできません。Java ファイルをクラス ファイルにコンパイルするだけです。