①安装java、javac环境(如已安装环境请跳过此步)
yum install java-1.6.0-sun.x86_64 java-1.6.0-sun-devel.x86_64
②准备java程序RunScriptFile.java
import java.io.FileReader
import javax.script.ScriptEngine
import javax.script.ScriptEngineManager
public class RunScriptFile {
public static void main(String[] args) {
ScriptEngineManager manager = new ScriptEngineManager()
ScriptEngine engine = manager.getEngineByName("js")
try {
FileReader reader = new FileReader("testFile.js")
engine.eval(reader)
reader.close()
} catch (Exception e) {
e.printStackTrace()
}
}
}
③准备js文件testFile.js
function add(a, b) {
c = a + b
return c
}
result = add (10, 5)
print ('Result = ' + result)
④编译java程序
javac RunScriptFile.java
会在当前目录生成RunScriptFile.class文件
⑤执行程序
java RunScriptFile
⑥结果显示
Result = 15
本例子使用了JDK 以上的javax script包 通过Invocable接口实现JAVA调用JS脚本里的方法 本例中调用分为内部执行脚本和外部执行脚本 外部执行脚本分为不带参数调用和带参数调用 主要采用invokeFunction方法调用 ObjectinvokeFunction(String name Object… args) 用于调用脚本中定义的顶层程序和函数 ObjectinvokeMethod(Object thiz String name Object… args) 对以前的脚本执行中已经编译的脚本对象(以 ScriptEngine 的状态保持)调用某一方法 package de javase import javax script Invocable import javax script ScriptEngineManager import javax script ScriptEngine import java io File import java io Reader import java io FileReader public class AjavaInvokingFunction { public static void main(String[] args) { // 获得一个JavaScript脚本引擎 也可以是ECMAScript脚本引擎 ScriptEngineManager manager = new ScriptEngineManager() ScriptEngine engine = manager getEngineByName( JavaScript ) String titlescript = function sayTitle() { + println( 源码实例 使用javax script调用JS脚本里的方法 ) + println( ) + } try {// 调用内部脚本执行 engine eval(titlescript) // 转换为Invocable Invocable invocableEngine = (Invocable) engine // 不带参数调用sayTitle方法 invocableEngine invokeFunction( sayTitle ) // 调用外部脚本执行 // 创建JS文件的File对象 并读入流 File functionscript = new File( ajava js ) Reader reader = new FileReader(functionscript) // 开始执行ajava js里的程序 engine eval(reader) // 不带参数调用sayHello方法 invocableEngine invokeFunction( sayHello ) // 带参数调用sayHello方法 invocableEngine invokeFunction( sayHello mark ) } catch (Exception e) { e printStackTrace() } } } ajava js文件 function sayHello(){ sayHello(null) } function sayHello(name){ if(name==null){ println( 欢迎你!请注册Ajava会员 ) }else{ println(name+ 独立JAVA社区欢迎你 ) } } 运行结果(控制台) 源码实例 使用javax script调用JS脚本里的方法 lishixinzhi/Article/program/Java/hx/201311/26436
1.JavaScript采用的格式如下:
<Script Language="JavaScript">
JavaScript 语句
</Script>
把上述语句放在HTML的<head>与</head>之间,也可放在<body>与</body>之间。
例子:在网页上显示“你好!”。
<html>
<body>
<Script Language="JavaScript">
alert("你好!")
</script>
</body>
</html>
2、在浏览器地址栏直接执行JavaScript脚本
也可以在浏览器的地址栏中输入JavaScript语句,由浏览器直接执行。
如输入:javascript:alert(200*75)
3、调用JavaScript文件
可以将纯JavaScript的语句另外保存在一个"*.js"的文件中,需要时再调用。
例子:调用test.js文件,显示提示。
<html>
<body>
调用test.js文件
<script language="JavaScript" src="test.js">
</script>
</body>
</html>
test.js的文件内容如下:
alert("这是被调用的语句。")