`

初探JDK6 javax.script (javascript解析)

    博客分类:
  • J2SE
阅读更多
初探JDK6 javax.script (javascript解析)
JDK6已经发布很久了,很早就听过他已经支持脚本语言了,
不过一直没有时间尝试,今天偷闲试了一下,感觉不错。
javax.script包它是Java新增的操作脚本的工具包,
利用它我们可以对脚本语言进行操作(本例仅是针对javascript)
1.用引擎直接解析脚本公式
//创建脚本引擎管理器
ScriptEngineManager sem = new ScriptEngineManager();
//创建一个处理JavaScript的脚本引擎
ScriptEngine engine = sem.getEngineByExtension("js");
try{
    //执行js公式
    engine.eval("if(6>5){flag=true;}else{flag =false;}");
}catch(ScriptException ex){
    ex.printStackTrace();
}
//看看我们预期的反馈结果 true
System.out.println((engine.get("flag")));

2.创建方法并进行脚本调用(这个是我比较喜欢的一种方式)
ScriptEngineManager sem = new ScriptEngineManager();
ScriptEngine engine = sem.getEngineByName("JavaScript");
//创建脚本
String script = "function max(first,second) "
	+ "{ return (first > second) ?true:false;}";
//执行脚本
engine.eval(script);
Invocable inv = (Invocable) engine;
//执行方法并传递参数
Object obj = inv.invokeFunction("max", "0", "1");
//打印结果
System.out.println((Boolean)obj==false);

这里据说Invoable很有用,好多高级功能可以用到。
不过我还没有深入,谁如果有深入研究请赐教。
分享到:
评论
1 楼 zyhui98 2011-12-12  
建议看下beanshell,好强大。

相关推荐

    javax.script

    javax.script java调用js的jar包

    javax.activation.jar

    javax.activation.jar 是一个Java平台上的库,主要用于支持数据对象的激活和处理,它是JavaMail项目的一部分,但也可以单独使用。这个库提供了数据处理和传输的标准API,使得开发者能够在不同的应用程序和环境中交换...

    javax.xml.rpc

    总的来说,解决"javax.xml.rpc"找不到的问题通常需要检查项目配置,特别是类路径和构建设置,确保所有的依赖都被正确地引入和解析。同时,理解XML-RPC和Web服务的基本概念以及它们在Java环境中的实现,有助于排查和...

    javax.ws.rs-api-2.0.1-API文档-中文版.zip

    赠送jar包:javax.ws.rs-api-2.0.1.jar; 赠送原API文档:javax.ws.rs-api-2.0.1-javadoc.jar; 赠送源代码:javax.ws.rs-api-2.0.1-sources.jar; 赠送Maven依赖信息文件:javax.ws.rs-api-2.0.1.pom; 包含翻译后...

    javax.ws.rs-api-2.0-API文档-中文版.zip

    赠送jar包:javax.ws.rs-api-2.0.jar; 赠送原API文档:javax.ws.rs-api-2.0-javadoc.jar; 赠送源代码:javax.ws.rs-api-2.0-sources.jar; 赠送Maven依赖信息文件:javax.ws.rs-api-2.0.pom; 包含翻译后的API文档...

    javax.annotation-api-1.3.2

    JDK9及以上版本没有javax.annotation-api-***.jar包 ,无法使用注解:@Resource JDK新特性,高版本JDK没有自带的javax(java扩展包)了。或者是使用的JDK不完整。 下载javax.annotation.jar包,导入到lib文件夹下,...

    发邮件程序需要的:javax.mail包

    发邮件程序需要的:javax.mail包

    javax.comm jar包

    由于某些原因,这个库没有被包含在标准的Java开发工具包(JDK)中,因此开发者需要单独下载并引入到他们的项目中。 javax.comm 包含了几个关键类和接口,例如`CommPortIdentifier`、`SerialPort`、`ParallelPort`等...

    Unable to load class ‘javax.xml.bind.JAXBException‘(csdn).pdf

    在Android Studio中遇到"Unable to load class ‘javax.xml.bind.JAXBException‘"的错误,通常是由于Java运行时环境(JRE)或开发工具包(JDK)与项目的兼容性问题导致的。`javax.xml.bind.JAXBException`是Java的...

    javax.xml.bind jdk1.5缺包

    标题 "javax.xml.bind jdk1.5缺包" 指出的问题是在使用Java 1.5版本时,遇到了与`javax.xml.bind`相关的类找不到的异常。具体来说,异常信息 "java.lang.ClassNotFoundException: ...

    jar.zip解决The import javax.crypto cannot be resolved

    遇到"The import javax.crypto cannot be resolved"的错误,通常是因为JDK缺少这些扩展,通过下载并替换相应的JAR文件即可解决。正确配置和使用这些扩展,可以帮助开发者实现更安全的加密和网络通信功能。

    jdk10+ java.lang.NoClassDefFoundError: javax/xml/ws/Service 错误

    在本例中,问题发生在从一个较低版本的JDK(如1.8)升级到JDK 10或更高版本后,导致无法找到`javax.xml.ws.Service`类。 在JDK 9及以后的版本中,Oracle进行了一次重大重构,引入了模块化系统(Project Jigsaw),...

    ActiveMQ 中javax.jms的源码 javax.jms-sources-1.1.zip

    《深入解析ActiveMQ中的javax.jms源码》 在Java消息服务(Java Message Service,简称JMS)领域,javax.jms是核心API,它定义了应用程序与消息中间件进行交互的一组接口和类。ActiveMQ作为开源的消息中间件,广泛...

    javax.xml.bind.jar

    报错Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/* 由于缺少了javax.xml.bind,这个包在jdk 8以上版本被移除,需要手动导入

    javax.activation-1.2.0.jar

    解决Springboot项目报错:com/sun/xml/bind/jaxb-impl/2.2.11/jaxb-×××.jar%2520(没有那个文件或目录)

    Java串口开发(内含comm.jar、win32com.dll、javax.comm.properties)文件

    java串口开发示例 内含win32com.dll、javax.comm.properties、comm.jar等文件 csdn上倒是资源不少,但积分要得太多了,好不容易在国外网站找到一个,免费共享给大家~~~

    最新版windows jdk-11.0.20-windows-x64-bin.exe

    最新版windows jdk-11.0.20_windows-x64_bin.exe最新版windows jdk-11.0.20_windows-x64_bin.exe最新版windows jdk-11.0.20_windows-x64_bin.exe

    最新版windows jdk-11.0.8_windows-x64_bin.zip

    《深入解析Windows JDK 11.0.8 64位安装与应用》 Windows JDK 11.0.8是Java开发工具包的一个重要版本,专为64位Windows操作系统设计,它提供了完整的Java开发环境,包括Java编译器、Java运行时环境以及各种开发工具...

    javamail1.4.5和javax.mail-1.5.5.jar

    6. **Address** 类族:表示邮件地址,包括InternetAddress(用于电子邮件地址)和其他特定类型的地址。 7. **Header**:邮件头信息,如From、To、Subject等,可以通过Message对象进行操作。 使用JavaMail时,...

    jdk1.7 tools.jar

    当想用cmd运行java文件时,出现问题。可能是因为jdk\lib 文件夹缺少tools.jar

Global site tag (gtag.js) - Google Analytics