`
jiqimiao
  • 浏览: 62259 次
  • 性别: Icon_minigender_1
  • 来自: 常州
社区版块
存档分类
最新评论

学习Java6(二) 脚本引擎

 
阅读更多
1importjavax.script.ScriptEngine;
2importjavax.script.ScriptEngineManager;
3importjavax.script.ScriptException;
4
5publicclassJavaScriptEngineTest{
6publicstaticvoidmain(String[]args){
7try{
8JavaScriptEngineTesttest=newJavaScriptEngineTest();
9test.sayHello("hermit");
10}catch(Exceptionse){
11se.printStackTrace();
12}
13}
14
15
16
17publicvoidsayHello(Stringname){
18ScriptEngineManagersem=newScriptEngineManager();
19ScriptEnginejsEngine=sem.getEngineByName("js");
20try{
21jsEngine.eval("print('hello"+name+"')");
22}catch(ScriptExceptione){
23e.printStackTrace();
24}
25}
26
27
28}

输出:
hello hermit

1importjavax.script.ScriptEngine;
2importjavax.script.ScriptEngineManager;
3importjavax.script.ScriptException;
4
5publicclassJavaScriptEngineTest{
6publicstaticvoidmain(String[]args){
7try{
8JavaScriptEngineTesttest=newJavaScriptEngineTest();
9test.testObject("a",7);
10}catch(Exceptionse){
11se.printStackTrace();
12}
13}
14
15publicvoidtestObject(Stringkey,intvalue){
16ScriptEngineManagermanager=newScriptEngineManager();
17ScriptEngineengine=manager.getEngineByName("js");
18engine.put(key,value);
19try{
20engine.eval("print("+key+"+1)");
21}catch(ScriptExceptione){
22e.printStackTrace();
23}
24}
25}

输出:
8

调用js:
1importjava.io.FileNotFoundException;
2importjava.io.FileReader;
3importjavax.script.Invocable;
4importjavax.script.ScriptEngine;
5importjavax.script.ScriptEngineManager;
6importjavax.script.ScriptException;
7
8publicclassJavaScriptEngineTest{
9publicstaticvoidmain(String[]args){
10try{
11JavaScriptEngineTesttest=newJavaScriptEngineTest();
12test.testAdd(5,6);
13}catch(Exceptionse){
14se.printStackTrace();
15}
16}
17
18publicStringgetPath(){
19returnthis.getClass().getResource("/").getPath();
20}
21
22
23publicvoidtestAdd(inta,intb){
24ScriptEngineManagersem=newScriptEngineManager();
25ScriptEnginejsEngine=sem.getEngineByName("js");
26try{
27jsEngine.eval(newFileReader(getPath()+"JavaScriptEngineTest.js"));
28}catch(FileNotFoundExceptione){
29e.printStackTrace();
30}catch(ScriptExceptione){
31e.printStackTrace();
32}
33InvocableinvocableEngine=(Invocable)jsEngine;
34try{
35Objectret=invocableEngine.invokeFunction("add",a,b);
36System.out.println(ret);
37}catch(ScriptExceptione){
38e.printStackTrace();
39}catch(NoSuchMethodExceptione){
40e.printStackTrace();
41}
42}
43
44
45}

JavaScriptEngineTest.js,放在同一目录:
1functionadd(a,b){
2returna+b;
3}
输出:
11.0
看了以上三个例子,我和大家一样有个疑问:what use?
一番思考,个人认为,脚本引擎对一般应用和开发没用什么太大用处,没人会用java能实现的功能非要绕个弯子去用js去实现。
那么是不是脚本引擎没用呢?也不是,我认为脚本引擎的作用在于开发产品。。。。。。。。
比如写个浏览器。。。。。。。。。。
比如写个报表工具。。。。。。。。
比如一个产品提供一些二次开发的接口给高级用户。
都可以用到脚本引擎。甚至可以扩展定义自己的脚本,不局限于JS。

这是我想到的脚本引擎的唯一用处。。。。。。
欢迎大家一起讨论。
分享到:
评论

相关推荐

    Java 8 Nashorn 脚本引擎

    Java 8 Nashorn脚本引擎是Java平台上的一个强大工具,它允许开发者在Java应用程序中直接执行JavaScript代码。Nashorn引擎是Oracle公司为Java 8引入的一个重要特性,其目的是提升Java与JavaScript之间的互操作性,...

    JAVA源码SnakeScriptJava游戏脚本引擎v1.1

    1. **兼容性**:SnakeScript Java游戏脚本引擎完全兼容Java语言,这意味着开发者可以利用现有的Java知识来进行脚本编写,无需额外学习新的编程语言。 2. **性能优化**:该引擎经过精心设计,在执行效率上有着显著的...

    Java脚本教程(学习资料)

    Java脚本教程是针对那些希望学习和掌握Java Scripting API的开发者所设计的学习资料。这个API允许Java应用程序与各种脚本语言进行交互,比如JavaScript、Groovy、Jython和JRuby等。下面将详细介绍Java Scripting API...

    Jill——Java编写的Lua脚本引擎

    **Jill:Java中的Lua脚本引擎** Jill是一个用Java语言实现的Lua脚本引擎,它为Java应用程序提供了一种高效且灵活的方式来运行Lua代码。Lua是一种轻量级的、解释型的脚本语言,因其简洁的语法和强大的功能在游戏开发...

    基于java的SnakeScript Java游戏脚本引擎 v1.1.zip

    《基于Java的SnakeScript Java游戏脚本引擎 v1.1》 在计算机编程领域,游戏开发是一项技术密集型的工作,而脚本引擎是其中的关键组件之一。SnakeScript Java游戏脚本引擎v1.1,正如其名,是一个专门用于Java平台的...

    为Java应用程序加入脚本引擎

    本文将重点介绍BeanShell——一个专为Java应用程序设计的脚本引擎,通过本文的学习,您将能够了解BeanShell的基本功能,并学会如何将其嵌入到您的Java应用程序中。 #### 二、脚本引擎概述 脚本引擎是一种能够解析...

    java脚本 快速学习

    "java脚本 快速学习"的压缩包可能包含了各种教程、示例代码和练习,帮助初学者快速掌握Java中的脚本使用和JavaScript的基本语法。建议从以下几个方面入手: 1. 学习JSAPI的使用方法,了解ScriptEngine接口和...

    基于Java的SnakeScript Java游戏脚本引擎 v1.1.zip

    《基于Java的SnakeScript Java游戏脚本引擎 v1.1》 在当今的软件开发领域,游戏引擎扮演着至关重要的角色,它们为开发者提供了一种高效、便捷的方式来创建游戏。而SnakeScript Java游戏脚本引擎v1.1,正是一个专注...

    SnakeScript Java游戏脚本引擎 v1.1

    SnakeScript Java游戏脚本引擎 v1.1 是一个专为Java游戏开发设计的脚本引擎,它允许开发者使用一种特定的脚本语言,名为SnakeScript,来编写游戏逻辑和交互。这种引擎通常用于提高游戏的灵活性,使得非程序员的游戏...

    基于Java的实例源码-SnakeScript Java游戏脚本引擎 v1.1.zip

    通过研究这个开源项目,开发者不仅可以学习到如何构建一个游戏脚本引擎,还能掌握Java与脚本语言结合的技巧,以及游戏逻辑的抽象和实现方法。这对于提升Java编程能力,尤其是游戏开发领域的技能,非常有帮助。 在...

    java源码:SnakeScript Java游戏脚本引擎 v1.1.rar

    **SnakeScript Java游戏脚本引擎 v1.1** 在Java编程世界中,游戏开发是一个充满挑战和创新的领域。...通过深入研究源代码和文档,开发者不仅可以学习到游戏脚本引擎的设计,还可以提升自己在Java游戏开发方面的技能。

    SnakeScript Java游戏脚本引擎 v1.1.zip

    SnakeScript Java游戏脚本引擎 v1.1 是一个专为Java游戏开发设计的脚本引擎,它允许开发者使用一种类似于Python的简洁语法编写游戏逻辑,从而提高了开发效率和代码的可读性。这个版本v1.1可能包含了性能优化、新功能...

    基于Java的实例开发源码-SnakeScript Java游戏脚本引擎 v1.1.zip

    【描述】: 这个压缩包包含了SnakeScript Java游戏脚本引擎的v1.1版本的完整源码,旨在帮助Java开发者理解和学习如何构建一个游戏脚本引擎。通过这个项目,你可以深入了解Java编程语言在游戏开发中的应用,以及如何...

    SnakeScript Java游戏脚本引擎.7z

    SnakeScript是一款专为Java游戏开发设计的脚本引擎,它允许开发者使用类似Python的语法来编写游戏逻辑,而无需深入学习复杂的Java编程。这个压缩包文件"SnakeScript Java游戏脚本引擎.7z"很可能包含了该引擎的源码、...

Global site tag (gtag.js) - Google Analytics