ユーザーが「プラグイン」を作成できるようにするプログラムを作成しようとしています。Linux bash シェルがファイルをディレクトリに置くことでコマンドを追加できるように、ユーザーが自分のコードをディレクトリに置いてプログラムを実行できるようにしようとしています。
これを行うには、次のいくつかの方法を考えました。
- どうにかして独自のスクリプト言語を作成し、それを使用してユーザーにプラグインを作成してもらいます
- Java がサポートする既存のスクリプト言語を見つけ、それを使用してユーザーがプラグインを作成できるようにする
- ユーザーに Java でプラグインを作成してもらい、プログラムの実行時にコンパイルしてもらいます。
3 つのオプションはすべてかなり悪いように見えますが、これが私が考えることができるすべてであり、オプション 3 が 3 つの中で最良のように思えました。そのため、いくつかの調査を行ったところ、Java 1.6 以降がファイルのランタイム コンパイルをサポートしていることがわかりました。ただし、ユーザーが作成したコードが、基本プログラムにある特定のクラスを参照している場合、コンパイラが失敗するかどうかはわかりません。通常はそうなりますが、私のプログラムがそれをコンパイルしているので、コンパイラーが基本プログラムのクラスの使用を許可するかどうかはわかりません。
理想的には、これをユーザーにとってできるだけ簡単にしたいと思います。私の主な質問は、コンパイラーが私の基本プログラムでクラスを参照する際に問題が発生するかどうかです。すべてのクラスに .jar を含めて、ユーザーが開発中にそれをライブラリとして使用する必要はありません。私が言ったように、私はこれがユーザーにとって簡単であることを望んでおり、理想的には、可能な限り解釈された言語に近いものであるべきです. そのため、ユーザーがコンパイルに煩わされる必要がないように、プログラムの実行時にこれを行いたいと考えています。.java ファイルをディレクトリに配置してプログラムを実行するだけです。
コンパイラがクラスに問題を起こすかどうか、またはこれに対処するためのより良い方法を誰かが知っていれば、それは素晴らしいことです!
ありがとう!