package com.byd.mes.util.script;
import java.util.HashMap;
import java.util.Map;
import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import sun.org.mozilla.javascript.internal.NativeObject;
public class ScriptUtils {
private static final ScriptEngineManager manager = new ScriptEngineManager();
private Map<String,Callback> custom = new HashMap<String,Callback>();
public interface Callback{
void callBack(String script);
}
private Map<String,Callback> conf = new HashMap<String,Callback>();
{
conf.put("testing", new ScriptUtils.Callback(){
@Override
public void callBack(String script) {
ScriptEngine engine = manager.getEngineByName("javascript");
try {
engine.eval(script);
Invocable invocableEngine = (Invocable)engine;
NativeObject obj = (NativeObject) invocableEngine.invokeFunction("testing", 1);
System.out.println(obj.get("nextOperation", null));
} catch (Exception e) {
throw new RuntimeException("执行Script脚本失败[function:testing]",e);
}
}});
}
public static void testing(String script){
}
public void setCustom(Map<String,Callback> custom) {
this.custom = custom;
this.conf.putAll(custom);
}
public Map<String,Callback> getCustom() {
return custom;
}
}
分享到:
相关推荐
要在Java中运行JavaScript,首先需要引入支持JavaScript的引擎,如Nashorn(在Java 8中默认提供,但在Java 11后被废弃)或Rhino。如果使用Nashorn,通常不需要额外的库,因为它已经包含在Java标准版中。若选择Rhino...
标题和描述中提到的“Java执行JavaScript代码”指向了一个特定的技术范畴,即在Java环境中执行JavaScript代码。这通常涉及到使用Java中的脚本引擎API,特别是那些支持JavaScript的实现。从提供的部分内容中可以提炼...
Java执行JavaScript代码是一种常见的跨语言交互场景,尤其是在服务器端应用中,例如集成第三方JavaScript库或者在Java应用中利用JavaScript的灵活性。以下将详细介绍如何在Java中执行JavaScript代码,并结合提供的...
例如,你可以在Java服务端定义一个接口,该接口允许在运行时加载和执行JavaScript脚本来完成特定任务,这样就能轻松地切换或更新业务逻辑,而无需重新编译和部署Java代码。 在实际项目中,这种方法可以应用于许多...
6. `js.jar`:这是Rhino的库文件,包含了运行JavaScript所需的类和接口,如`org.mozilla.javascript.*`包下的类。 在使用Rhino时,开发者通常会创建一个`ScriptEngineManager`实例,然后通过`getEngineByName(...
在Java中运行JavaScript代码的能力是开发跨平台应用时的一个强大工具,这使得Java开发者能够利用JavaScript的灵活性和库资源。Rhino,由Mozilla基金会开发,就是这样一个JavaScript引擎,它允许Java程序直接执行...
这些文件可以直接运行,用于演示如何在Java和JavaScript之间进行DES加密解密。通过查看和理解这些代码,你可以更好地了解如何在实际项目中应用这一技术。 6. **安全注意事项**: 虽然DES在某些场景下仍可用,但它...
2. **Nashorn JavaScript引擎**:Java 8引入了Nashorn JavaScript引擎,可以直接在JVM(Java虚拟机)中运行JavaScript代码。Java可以通过`javax.script`包中的接口与JavaScript交互,允许在Java程序中执行JavaScript...
它的设计目标是“一次编写,到处运行”,这意味着Java代码可以在各种平台之间无缝移植。Java广泛应用于企业级应用开发、服务器端编程、移动应用(尤其是Android平台)、大数据处理以及云计算等领域。Java的特点包括...
这两种语言在不同的环境运行,Java主要在服务器端,而JavaScript则在客户端。在数据传输过程中,为了保证数据的安全,加密技术扮演了关键角色。本篇将深入探讨如何使用DES(Data Encryption Standard)算法在Java和...
### JavaApplet与JavaScript #### 6.1 JavaApplet ##### 6.1.1 JavaApplet概述 **Applet 类层次结构:** JavaApplet 的基础是 `java.applet.Applet` 类,它是从 `java.awt.Panel` 继承而来的一个特殊的图形组件。...
在IT领域,有时候我们需要在Java或JavaScript代码中执行操作系统级别的命令,例如运行系统脚本、管理文件、控制进程等。这种需求通常通过调用命令行(CMD)来实现。本文将详细探讨如何在Java和JavaScript中调用...
JavaScript通过执行特定的函数或方法,触发一个事件,这个事件被Java端的监听器捕获,进而执行相应的Java代码。完成后,Java端可以通过调用JavaScript函数返回结果,完成双向通信。 这个开源项目"Scripto-master...
Java运行JavaScript脚本引擎Rhino是一个强大的工具,它允许Java应用程序执行JavaScript代码并利用JavaScript的灵活性和动态性。Rhino是Mozilla基金会开发的一个开源项目,它完全用Java编写,因此可以无缝集成到Java...
例如,文档可能包含了一个HTML页面中的Applet标签,该标签指向Java Applet的一个class文件,Java Applet被用来执行后台的Java代码,而JavaScript则用于处理前端的页面交互。 从给出的内容中,我们可以看到一些关键...
Java和JavaScript是两种不同的编程语言,虽然名字相似,但它们在设计理念、用途、执行方式和语法特性等方面有着显著的区别。 1. 开发背景与公司: - Java是由SUN Microsystems(后被Oracle收购)推出的,它是一种...
这个项目可能是一个库或者框架,它不含任何第三方依赖,因此可以在纯JavaScript环境中独立运行。"Java"标签可能意味着项目同时也提供了与Java平台的接口或适配器,使得Java开发者也能方便地使用这个库。 描述中的...
通过上述示例,我们了解了Java操作JavaScript的基本流程:初始化`ScriptEngineManager`,获取`ScriptEngine`实例,执行脚本,以及通过`Invocable`接口调用脚本中的方法。这一机制不仅提升了Java程序的灵活性,还为...
1. Java代码:可能使用JDBC(Java数据库连接)来连接Oracle数据库,执行SQL查询,处理结果集。 2. JavaScript代码:可能涉及前端与后端的交互,如通过Ajax发送请求,获取并显示从Oracle数据库获取的数据。 3. 示例...
这些代码可能包括JavaScript和Java两部分,分别展示了如何初始化密钥、执行加密和解密操作,并确保结果在两个环境间一致。为了确保互操作,开发者可能需要进行一些额外的步骤,比如在JavaScript中使用Base64编码将二...