重複の可能性:
文字列をコードに変換する
文字列をコードとして実行できるようにする必要があるプログラムがあります。たとえば、次のような文字列があります。
public void do(int a, int b){
a++;
b--;
System.out.println(a);
System.out.println(b);
}
では、プログラムにその文字列を実行させるにはどうすればよいでしょうか。
重複の可能性:
文字列をコードに変換する
文字列をコードとして実行できるようにする必要があるプログラムがあります。たとえば、次のような文字列があります。
public void do(int a, int b){
a++;
b--;
System.out.println(a);
System.out.println(b);
}
では、プログラムにその文字列を実行させるにはどうすればよいでしょうか。
この文字列をクラスでラップし、Java Compiler APIでコンパイルできます。JRE の代わりに JDK を実行する必要があります。
テキストを受け取り、動的にコンパイルして実行するKoalaDynamicJavaを見てください。
この単純な答えは、これは実際には Java では実行できないということです。javac コンパイラーを呼び出そうとすることで、ハックな方法を思いつくことができますが、その時点で実際にどのようにロードしたり、使用したりするかはわかりません。
Javascript や Lua などの一部のスクリプト言語では、文字列を読み込んで実行しようとする「eval」タイプの関数を使用できます。
問題は、このプログラムをどのように実行するかだと思いますか? 答えは、コンパイル後にJavaコマンドラインツールが実行できるように、「静的メイン」関数とともにクラス定義にラップする必要があるということです。