`

Java 对 JavaScript 脚本的方法调用

    博客分类:
  • java
阅读更多
package com.chen.java;

import java.io.File;
import java.io.FileReader;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;

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

import com.chen.interfaces.Greeter;

/**
 * 这个场景的代码用于在web容器中调用js中定义的方法。Greeter 是java接口类,和js中定义的方法在名称,参数和返回值上保持一致
 * @author Administrator
 *
 */
public class TestScript {
    public static void main(String[] args) {
        String url = TestScript.class.getResource("/").getPath();
        String str = null;
        try {
            str = URLDecoder.decode(url.toString(), "UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        String path = new File(str).getParent() + File.separator + "js" + File.separator + "test.js";
        try {
            ScriptEngineManager manager = new ScriptEngineManager();
            ScriptEngine engine = manager.getEngineByName("JavaScript");
            engine.eval(new FileReader(path));
            
            Greeter g = ((Invocable) engine).getInterface(Greeter.class);
            System.out.println("result = " + g.greet("androidla"));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}


在java中的方法:
package com.chen.interfaces;

public interface Greeter {
    String greet(String whom);
}


在js中定义的方法:
function greet(name) {
	return "I'm write in JavaScript, hello, " + name;
}


运行结果:
result = I'm write in JavaScript, hello, androidla


相关参考: http://www.ibm.com/developerworks/cn/java/j-lo-jse66/index.html
1
1
分享到:
评论

相关推荐

    Java调用javaScript代码

    标题中的“Java调用JavaScript代码”是指在Java程序中执行JavaScript脚本,实现跨语言通信。这主要通过Java的ScriptEngine接口和其相关的API来实现,这些API位于Java的javax.script包中。ScriptEngine接口提供了执行...

    java如何与脚本(javaScript)之间相互调用二

    标题“Java如何与脚本(JavaScript)之间相互调用二”主要探讨的是在Java应用程序中如何集成和调用JavaScript代码,以及反过来JavaScript如何调用Java的功能。这涉及到跨语言交互的技术,通常通过Java的ScriptEngine...

    android使用webView实现java程序与js脚本的相互调用

    使用`addJavascriptInterface()`方法暴露一个Java对象给JavaScript环境,这样JavaScript就可以调用这个对象的方法: ```java webView.addJavascriptInterface(new Object() { @JavascriptInterface @RequiresApi...

    Java applet调用c++ SSO登录javascript脚本开发教程

    Java Applet调用C++ SSO登录JavaScript脚本开发教程主要涉及了跨语言交互、SSO(Single Sign-On,单点登录)技术以及自动化登录流程的实现。在本教程中,我们将探讨如何利用Java Applet作为桥梁,调用C++实现的SSO...

    java javascript 调用命令行 cmd

    在IT领域,有时候我们需要在Java或JavaScript代码中执行操作系统级别的命令,例如运行系统脚本、管理文件、控制进程等。这种需求通常通过调用命令行(CMD)来实现。本文将详细探讨如何在Java和JavaScript中调用...

    Java调用Groovy,实时动态加载数据库groovy脚本

    我们可以编写一个Java方法,从MongoDB中查询到Groovy脚本,然后利用上述的Groovy调用机制执行这些脚本。 例如,我们可能会有一个MongoDB集合,其中每个文档包含一个字段存储Groovy脚本。Java代码会连接到MongoDB,...

    ( java调用js__方法.docx

    Java 调用 JS 方法是指在 Java 代码中调用 JavaScript 代码的方法,从而实现 Java 和 JavaScript 之间的交互。在本文中,我们将详细介绍 Java 调用 JS 方法的实现步骤和相关知识点。 Java 调用 JS 方法的实现 在 ...

    springboot整合dwr实现js调用java方法

    SpringBoot整合Direct Web Remoting (DWR)是一个常见的技术实践,它允许JavaScript在浏览器端直接调用服务器端的Java方法,极大地增强了Web应用的交互性。在这个过程中,我们通常会结合使用FreeMarker或JSP作为视...

    Java调用Javascript.pdf

    Java调用Javascript的技术涉及了在Java Applet中通过脚本接口与Web页面上的JavaScript代码进行交互。这部分技术在当前的Web开发中已较少使用,因为Java Applet的安全性问题和浏览器的兼容性问题,使得现代浏览器逐渐...

    [ScriptService] 特性的 Web 服务才能从脚本中调用

    为了实现这一功能,ASP.NET AJAX框架提供了一种机制,即通过`[ScriptService]`特性来标记那些可以从客户端脚本调用的Web服务。本文将详细介绍`[ScriptService]`特性的使用方法及其背后的工作原理,并解决相关异常...

    C# 动态解析 javascript 脚本引擎源码

    在实际应用中,C#通过调用Noesis.Javascript库的API,可以轻松地执行JavaScript脚本,如下所示: ```csharp using Noesis.Javascript; // 创建JavaScript引擎实例 var engine = new JavascriptEngine(); // 注册...

    《kettle中调用java类》示例代码

    Kettle提供了丰富的转换和作业元素,能够处理各种数据源和目标,其中就包括对Java类的调用。在标题《kettle中调用java类》示例代码中,我们关注的是如何在Kettle的转换或作业中嵌入Java代码,以实现更复杂的数据处理...

    java android 执行脚本代码(java代码)

    通过Python Interpreter API,Java代码可以调用Python脚本并获取结果。 - **Kivy or PyDroid3**: 这些第三方库允许在Android设备上完整地运行Python环境,提供更强大的Python支持。 3. **Shell命令执行**: - **...

    java执行JavaScript代码

    这篇博客(博文链接已提供)将介绍如何在Java中执行JavaScript代码,这主要得益于Java的脚本引擎API。 Java 6引入了JSR 223(Java Scripting API),使得开发者能够在Java应用程序中嵌入和执行各种脚本语言,包括...

    Java中使用JavaScript脚本的方法步骤

    这意味着在JavaScript脚本中可以调用Java对象的方法,以及在Java程序中可以执行JavaScript函数,并获取其返回值。 使用JavaScript脚本在Java中的基本步骤可以概括如下: 1. 编写JavaScript脚本:首先,需要编写...

    Java与JavaScript交叉调用技术在Web开发中的应用.pdf

    然而,JavaScript脚本执行响应速度快,它不象Java applet那样要经历load、init、start和run那么复杂的过程。 然而,JavaScript的致命弱点是它的作用范围仅仅是在Web页。因此,它不象Java那样能独立地完成存取Web...

    Java与Java Applet和JavaScript间的混编方法.pdf

    例如,在HTML脚本中可以使用JavaScript直接调用Java中的方法,只需要在调用语句前加以“java.lang.”表示。 在Java Applet和JavaScript混编中,可以使用JavaScript提供的Applet对象,访问Java Applet中的方法和变量...

    webview组件javascript调用java的小程序

    然而,需要注意的是,出于安全考虑,从Android 4.2(API级别17)开始,仅标记为`@JavascriptInterface`的方法才能在JavaScript中调用,这是为了防止恶意脚本执行跨域操作。 此外,还可以通过`WebViewClient`或`...

Global site tag (gtag.js) - Google Analytics