当前位置:首页 > Java

java如何操作js

2026-03-22 01:17:23Java

操作 JavaScript 的几种方法

使用 Java 内置的 ScriptEngine

Java 提供了 javax.script 包,可以通过 ScriptEngine 执行 JavaScript 代码。

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

public class JsExample {
    public static void main(String[] args) {
        ScriptEngineManager manager = new ScriptEngineManager();
        ScriptEngine engine = manager.getEngineByName("JavaScript");

        try {
            engine.eval("var x = 10; var y = 20; var z = x + y;");
            Object result = engine.eval("z");
            System.out.println("Result: " + result); // 输出 30
        } catch (ScriptException e) {
            e.printStackTrace();
        }
    }
}

使用 Nashorn 引擎(Java 8-14)

Nashorn 是 Java 8 默认的 JavaScript 引擎,性能优于 Rhino(旧版引擎)。

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;

public class NashornExample {
    public static void main(String[] args) throws Exception {
        ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn");
        engine.eval("print('Hello from Nashorn!');");
    }
}

使用 GraalVM 的 JavaScript 引擎(Java 15+)

从 Java 15 开始,Nashorn 被移除,推荐使用 GraalVM 的 JavaScript 引擎。

import org.graalvm.polyglot.Context;

public class GraalJsExample {
    public static void main(String[] args) {
        try (Context context = Context.create("js")) {
            context.eval("js", "console.log('Hello from GraalVM!');");
        }
    }
}

使用第三方库(如 Rhino)

如果需要在较旧版本的 Java 上运行 JavaScript,可以使用 Mozilla 的 Rhino 引擎。

<!-- Maven 依赖 -->
<dependency>
    <groupId>org.mozilla</groupId>
    <artifactId>rhino</artifactId>
    <version>1.7.14</version>
</dependency>
import org.mozilla.javascript.Context;
import org.mozilla.javascript.Scriptable;

public class RhinoExample {
    public static void main(String[] args) {
        Context context = Context.enter();
        try {
            Scriptable scope = context.initStandardObjects();
            Object result = context.evaluateString(scope, "3 + 4", "test", 1, null);
            System.out.println("Result: " + Context.toString(result)); // 输出 7
        } finally {
            Context.exit();
        }
    }
}

调用 JavaScript 函数并传递参数

可以在 Java 中调用 JavaScript 函数,并传递参数。

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

public class CallJsFunction {
    public static void main(String[] args) {
        ScriptEngine engine = new ScriptEngineManager().getEngineByName("JavaScript");
        try {
            engine.eval("function add(a, b) { return a + b; }");
            Object result = ((javax.script.Invocable) engine).invokeFunction("add", 5, 7);
            System.out.println("Result: " + result); // 输出 12
        } catch (ScriptException | NoSuchMethodException e) {
            e.printStackTrace();
        }
    }
}

使用 Selenium 操作浏览器 JavaScript

如果需要在浏览器中执行 JavaScript,可以使用 Selenium WebDriver。

java如何操作js

import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class SeleniumJsExample {
    public static void main(String[] args) {
        WebDriver driver = new ChromeDriver();
        driver.get("https://example.com");

        JavascriptExecutor js = (JavascriptExecutor) driver;
        js.executeScript("alert('Hello from Selenium!');");

        driver.quit();
    }
}

注意事项

  • 安全性:执行外部 JavaScript 时需注意代码注入风险。
  • 性能ScriptEngine 适用于简单脚本,复杂逻辑建议使用 Node.js 或其他专业引擎。
  • 兼容性:Java 15+ 需使用 GraalVM 替代 Nashorn。

标签: 操作java
分享给朋友:

相关文章

如何运行java

如何运行java

运行Java程序的方法 安装Java开发工具包(JDK) 确保系统已安装JDK。可通过命令行输入 java -version 检查是否安装。若未安装,需从Oracle官网或OpenJDK下载并配置环境…

如何安装java

如何安装java

下载Java开发工具包(JDK) 访问Oracle官方网站或OpenJDK下载页面,选择适合操作系统的版本(Windows、macOS或Linux)。推荐下载最新的长期支持(LTS)版本,如Java…

如何配置java

如何配置java

安装Java开发工具包(JDK) 访问Oracle官方网站或OpenJDK项目页面下载适合操作系统的JDK安装包。选择与系统架构匹配的版本(如Windows x64、macOS ARM等)。运行安装程…

java如何连接数据库

java如何连接数据库

Java连接数据库的方法 Java连接数据库通常使用JDBC(Java Database Connectivity)技术,以下是具体步骤和示例代码。 加载数据库驱动 在连接数据库之前,需要加载对应的…

java如何实现异步

java如何实现异步

Java实现异步的方法 Java中实现异步编程可以通过多种方式,每种方式适用于不同的场景和需求。以下是常见的实现方法: 使用Thread类 创建新线程执行异步任务是最基础的方式。通过继承Thread…

如何搭建java开发环境

如何搭建java开发环境

下载并安装JDK 从Oracle官网或OpenJDK下载适合操作系统的JDK版本。运行安装程序并按照提示完成安装,建议选择默认路径以减少配置复杂度。 配置环境变量 在系统环境变量中添加JAVA_HO…