JBoss サーバーにデプロイされたエンタープライズ アーカイブ (ear) がクラスを動的にコンパイル (および実行) する必要があるプロジェクトに取り組んでいます。私はこれを行うために JavaCompiler クラスを使用しています - 複雑なのは、コンパイルされるクラスが ear 内の ejb jar 内に含まれるいくつかのクラスへの参照を持っているという事実から生じます。
展開された ear が展開時に「展開」されている場合、これは問題ではないため、アーカイブではなく単なるディレクトリです。この場合、コンパイラの -classpath オプションで必要な jar を指定でき、コンパイルが機能します。大丈夫。残念ながら、私が使用しているシステムの制約により、これらの耳を「展開」して展開することは受け入れられる解決策ではなく、アーカイブにラップされている場合、コンパイラは必要な jar を「見る」ことができないようです。
問題の耳から動的コンパイルが行われているため、システムのクラスローダーが必要なjarの内容にアクセスできる場合、システムクラスによってロードされたクラスを使用するようにコンパイラーに指示できる方法はありますか?ローダ?
これは冗長な質問だと思いますが、何か助けていただければ幸いです。
ありがとう