ホームページ  >  記事  >  Java  >  文字列変数から Java コードを実行するにはどうすればよいですか?

文字列変数から Java コードを実行するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-25 05:30:29423ブラウズ

How to Execute Java Code from a String Variable?

Java の文字列からの動的コード実行

この記事では、String 変数内に格納された Java コードの一部の実行について詳しく説明します。このコードを Java ステートメントに変換して動的に実行できますか?

動的コードのコンパイルと実行

この問題に取り組む 1 つのアプローチには、Java のコンパイラ API を利用することが含まれます。これにより、Java コードをオンザフライでコンパイルできるようになります。関連する手順の概要を次に示します。

  • JavaCompiler インスタンスを使用して String に含まれるコードをコンパイルします。
  • ClassLoader インスタンスを取得して、コンパイルされたクラスをロードします。
  • 動的にロードされるクラスのインスタンスを作成し、そのメソッドを呼び出します。

代替: Beanshell

あるいは、Beanshell で解釈されるスクリプト言語の使用を検討できます。 。 Beanshell は、文字列から Java コードを実行するためのシームレスなインターフェイスを提供します。 Beanshell の使用方法は次のとおりです。

  • Beanshell ライブラリをプロジェクトにインポートします。
  • インタープリター クラスのインスタンスを作成し、Java コード文字列を入力として提供します。
  • eval() メソッドを呼び出してコードを実行します。

実装の詳細

次のコード スニペットは、Beanshell を使用した Java コードの動的実行を示しています。

<code class="java">import bsh.Interpreter;

public class DynamicCodeExecution {

    public static void main(String[] args) throws Exception {
        // Java code stored in a String
        String javaCode = "if(polishScreenHeight >= 200 && " +
            "polishScreenHeight <= 235 && polishScreenWidth >= 220) { }";

        // Create Beanshell interpreter
        Interpreter interpreter = new Interpreter();

        // Set the code to be executed
        interpreter.eval(javaCode);
    }
}</code>

このアプローチを使用すると、文字列内の Java コードが動的に実行され、実行時に条件を評価したり操作を実行したりできるようになります。

以上が文字列変数から Java コードを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。