0

jdk1.6コンパイラAPIを使用して動的コンパイルを行っています。
今のところ、コンパイル時にクラスパスに含めるために、必要なすべての jar ファイルを disk にダンプしました。
メモリ内のjarファイルをクラスパスに直接配置するためのトリックはありますか?
javax.tools.ForwardingJavaFileManager を拡張してこれを行う方法を理解できませんでした。
誰かヒントをくれませんか?
ありがとう。

4

2 に答える 2

0

完全にメモリ内にある独自の FileManager を作成しました。このアプローチを使用して、結果をメモリ内の「ファイル システム」にロードしたり、書き込んだりすることもできます。

https://github.com/OpenHFT/Java-Runtime-Compiler/blob/master/compiler/src/main/java/net/openhft/compiler/MyJavaFileManager.java

于 2014-06-27T05:13:39.733 に答える
0

マニフェストを使用して jar ファイルをクラスパスに追加する方法については、こちらをお読みください。

jar 内にフォルダーが必要META-INFです。Manifest.mf ファイルは、jar のそのフォルダーにある必要があります。

jar ファイルを入れるオプションもありますがJAVA_HOME/lib/ext、これは悪い習慣です。JRE は、あなたのアプリケーション以外の多くのアプリケーションで使用でき、クラスパスにあなたのクラスを含める必要はありません。

于 2014-06-27T03:05:43.377 に答える