重複の可能性:
Java での eval の使用
外部ソース コードの読み込みと内部での使用 (再コンパイルなどによる)
関数が文字列(一部のソースコード)を受け取り、コンパイルして実行し、戻り値を返すように、Javaで「評価」をシミュレートしたいと思います。
JavaCompiler API を使用してコンパイルできることはわかっていますが、このようなコードを実際に実行する最善の方法がわかりません。Runtime.exec は、このタスクには重すぎると感じています... 「30+20」などを評価するためだけに、この「eval」関数を実行するたびに、別の Java プロセスを生成したくありません。これは遅く、リソースを大量に消費します。
最後に、これは任意の Java コードを実行できる必要があるため、Java 内のスクリプト言語エバリュエーターに依存することはできません (たとえば、入力が単に '30+20' よりも複雑な Java である場合)。
代替案はありますか?