java $ 参数_Java 脚本参数

Java脚本教程 - Java脚本参数

Java Scripting API允许我们将参数从Java应用程序传递到脚本引擎,反之亦然。

将参数从Java代码传递到脚本

msg是print()函数中使用的变量。

脚本不声明msg变量。

我们可以通过几种方式将参数传递给脚本引擎。

一种方法是使用脚本引擎的put(String paramName,Object paramValue)方法,它接受两个参数:参数的名称,它需要与脚本中变量的名称匹配。

参数的值。

要将名为msg的参数传递给脚本引擎,请按如下所示调用put()方法:engine.put("msg", "Hello from Java program");

以下代码显示了如何将参数从Java程序传递到脚本。import javax.script.ScriptEngine;

import javax.script.ScriptEngineManager;

import javax.script.ScriptException;

public class Main {

public static void main(String[] args) {

// Get the Nashorn engine ScriptEngineManager manager = new ScriptEngineManager();

ScriptEngine engine = manager.getEngineByName("JavaScript");

String script = "print(msg)";

try {

engine.put("msg", "Hello from Java program");

engine.eval(script);

} catch (ScriptException e) {

e.printStackTrace();

}

}

}

上面的代码生成以下结果。

fd005b4187ac96c0d78ffcc020820546.png

将名为msg的参数传递给JRuby中的脚本。ScriptEngineManager manager = new ScriptEngineManager();

ScriptEngine engine = manager.getEngineByName("jruby");

String script = "puts($msg)";

engine.put("msg", "Hello from Java");

// Execute the script

engine.eval(script);

例子

传递给脚本的Java对象的属性和方法可以在脚本中访问。import javax.script.ScriptEngine;

import javax.script.ScriptEngineManager;

public class Main {

public static void main(String[] args) throws Exception{

ScriptEngineManager manager = new ScriptEngineManager();

ScriptEngine engine = manager.getEngineByName("JavaScript");

String script = "print(msg.toUpperCase());print(msg.indexOf("a"))";

engine.put("msg", "w3cschool.cn");

engine.eval(script);

}

}

上面的代码生成以下结果。

5a900b1b54c12948c43c18450776391b.png

将参数从脚本传递到Java代码

脚本引擎可以将全局范围变量传递给Java代码。

ScriptEngine的get(String variableName)方法可以访问Java代码中的这些变量。

它返回一个Java对象。

全局变量的声明是与脚本语言相关的。import javax.script.ScriptEngine;

import javax.script.ScriptEngineManager;

public class Main {

public static void main(String[] args) throws Exception {

ScriptEngineManager manager = new ScriptEngineManager();

ScriptEngine engine = manager.getEngineByName("JavaScript");

String script = "var year = 2015";

engine.eval(script);

Object year = engine.get("year");

System.out.println("year"s class:" + year.getClass().getName());

System.out.println("year"s value:" + year);

}

}

上面的代码生成以下结果。

68383d4f56da00d768c45842cdeab317.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值