首頁 >Java >java教程 >如何從字串變數執行 Java 程式碼?

如何從字串變數執行 Java 程式碼?

Patricia Arquette
Patricia Arquette原創
2024-10-25 05:30:29522瀏覽

How to Execute Java Code from a String Variable?

Java 中字串的動態程式碼執行

本文深入研究了執行儲存在 String 變數中的 Java 程式碼的查詢。能否將這段程式碼轉換為 Java 語句並動態執行?

動態程式碼編譯和執行

解決此問題的一種方法是利用 Java 的編譯器 API。這允許您即時編譯 Java 程式碼。以下是所涉及步驟的簡要概述:

  • 使用 JavaCompiler 實例編譯 String 中包含的程式碼。
  • 取得 ClassLoader 實例以載入已編譯的類別。
  • 建立動態載入類別的實例並呼叫其方法。

替代:Beanshell

或者,您可以考慮使用 Beanshell 來解釋腳本語言。 Beanshell 提供了一個用於從字串執行 Java 程式碼的無縫介面。以下是使用 Beanshell 的方法:

  • 將 Beanshell 庫匯入您的專案。
  • 建立 Interpreter 類別的實例並提供 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>

使用這種方法, String 中的Java 程式碼將會動態執行,讓您在執行時間評估條件或執行操作。

以上是如何從字串變數執行 Java 程式碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn