JavaScript解释器包含一种功能,允许JavaScript代码来查询和设置java对象中字段值以及调用java对象中的方法。另外,JavaScript公平可以自己创建一个java对象。来看一段代码:
//创建java对象
var frame = new Packages.javax.swing.JFrame("Hello World");
var button = new Packages.javax.swing.JButton("Hello World");
var font = new Packages.java.awt.Font("SansSerif",Packages.java.awt.Font.BOLD,24);
//调用java对象中的方法 和java中一样吧? :D
frame.add(button);
button.setFont(font);
frame.setSize(200,200);
frame.setVisible(true);
JavaScript解释器通过Packages全局变量来访问所有的java包。例如:
Packages.javax.awt是访问
javax.awt包,而
Packages.java.lang.System是访问
java.lang.System类。
另外,如果是java包,JavaScript解释器有一个专门访问java包的全局标记,可以不用
Packages了,这个全局标记就是
java,因此,上面的
Packages.java.lang.System可以直接写成
java.lang.System。除了java包,其它的包都要通过Packages全局标记来访问。
JavaScript之所以如此方便的使用java对象,是因为JavaScript解释器采用了一种LivaConnect技术。要理解
LiveConnect所使用的JavaScript数据类型。
一、
JavaPackage类:
JavaPackage是JavaScript的一种数据类型。java中的一个包存放着一组相关的java类,而一个JavaPackage类就表示了一个java包。JavaPackage的属性就是java包中所有的类,以及这个包中的所有子包。像java、javax包都是JavaPackage对象。
注:JavaPackage中的属性(即:类)是不可枚举的,所以无法用for/in循环查看包中的内容。
所有的JavaPackage对象都包含在一个父JavaPackage中。例:
Packages.java是一个
JavaPackage,它包含了
Packages.java.awt这个
JavaPackage.而
Packages.java.awt又包含了一个
Packages.java.awt.Button,这个是个具体类了,那它就不是一个
JavaPackage了,而是
JavaClass.(JavaClass是包中的类)。另外,
Packages.java.awt下还有个包
Packages.java.awt.image包。
从而看出,某个JavaPackage通常存在这种情况:
JavaPackage有两个缺点:
1、对于LiveConnect来说,没有办法提前分辨属性是类还是包,所以JavaScript先把属性当类来处理,如果找不到类,才按包来独步一时。这样导致了第二个缺点
2、如果写错了类名,JavaScript会把它当作一个包,而不是通知程序员类名不存在。
分享到:
相关推荐
以下是一个简单的示例,展示了如何在Java程序中运行JavaScript脚本: ```java import javax.script.*; public class RunScript { public static void main(String[] args) throws IOException { ...
Adobe Illustrator CC 2015 JavaScript脚本手册是一份官方文档,旨在帮助用户学习如何编写JSX脚本,以自动化和扩展Adobe Illustrator软件的功能。该手册提供了深入的技术指南和编程参考,使得开发者能够通过编程语言...
浅析页面中Java与JavaScript脚本的区别 Java 与 JavaScript 脚本是两种不同的编程语言,它们在 Web 开发中扮演着重要的角色。虽然它们都可以嵌入到 HTML 页面中,但是它们的表示方式、执行过程和应用场景都是不...
* 在Java中使用脚本语言JavaScript。 * * @author LeiWen@FansUnion.cn,http://FansUnion.cn, * http://blog.csdn.net/FansUnion * * QQ:240370818 参考资料:...
在实际应用中,C#通过调用Noesis.Javascript库的API,可以轻松地执行JavaScript脚本,如下所示: ```csharp using Noesis.Javascript; // 创建JavaScript引擎实例 var engine = new JavascriptEngine(); // 注册...
你可以通过mongo命令行工具直接执行JavaScript脚本: ```bash mongo mydb --quiet ``` `mydb`是你要连接的数据库,`script.js`是包含JavaScript命令的文件。 2. MongoDB命令行: 在MongoDB shell中,可以直接输入...
Java Applet调用C++ SSO登录JavaScript脚本开发教程主要涉及了跨语言交互、SSO(Single Sign-On,单点登录)技术以及自动化登录流程的实现。在本教程中,我们将探讨如何利用Java Applet作为桥梁,调用C++实现的SSO...
这就是`js jar jwr`标签所指的场景,它涉及到Java运行时环境中如何加载和执行JavaScript脚本。 1. **Nashorn JavaScript引擎**: 在Java 8之前,Java提供了Nashorn JavaScript引擎,这是一个内置的JavaScript解释...
在Android开发中,Java语言是主要的编程工具,但有时候我们可能需要在应用程序中执行一些脚本代码,比如JavaScript、Python或Shell等。这通常是为了实现一些特定功能,如自动化处理、数据解析或是利用第三方库的脚本...
这对于那些需要在服务器端或者桌面应用中运行JavaScript脚本的Java开发者来说,是一个非常重要的工具。 在Java 8中,Nashorn引擎主要通过以下两个接口提供服务: 1. `ScriptEngine`:这是Java的`javax.script`包中...
这些病毒通常通过恶意代码、病毒体和脚本文件或 Java 小程序组成,能够在网页中隐藏,等待用户访问时进行攻击。 二、Javascript 脚本病毒的特点 Javascript 脚本病毒具有强大的破坏性和多重属性,能够导致计算机...
标题中的“Java调用JavaScript代码”是指在Java程序中执行JavaScript脚本,实现跨语言通信。这主要通过Java的ScriptEngine接口和其相关的API来实现,这些API位于Java的javax.script包中。ScriptEngine接口提供了执行...
标题中的“Java如何与脚本(JavaScript)之间相互调用二”表明了本文将深入探讨在Java应用程序中如何与JavaScript代码进行交互,这通常涉及到Java的脚本引擎,如Nashorn或Rhino。这些引擎允许Java代码执行JavaScript...
以下是一个简单的示例,展示了如何使用JSAPI执行JavaScript脚本: ```java import javax.script.ScriptEngineManager; import javax.script.ScriptEngine; import javax.script.ScriptException; public class ...
Java语言在处理JavaScript脚本时,常常会借助于一些库来实现,其中一个著名的库就是Rhino。Rhino是由Mozilla开发的一个开源的JavaScript引擎,它完全用Java编写,能够将JavaScript代码编译为Java字节码,从而使得...
在IT行业中,脚本特效是Web开发中一个重要的组成部分,特别是在Java和JSP技术的应用上。Java是一种广泛使用的面向对象的编程语言,而JSP(Java Server Pages)是基于Java平台的一种动态网页技术,它允许开发者将静态...
该项目为基于Java语言的JavaScript脚本编写设计源码,包含218个文件,其中包括156个XML配置文件、54个Java源文件、2个Git忽略文件、2个Markdown文件、2个YAML文件、1个Idea项目文件、1个数据库文件。
Java运行JavaScript脚本引擎Rhino是一个强大的工具,它允许Java应用程序执行JavaScript代码并利用JavaScript的灵活性和动态性。Rhino是Mozilla基金会开发的一个开源项目,它完全用Java编写,因此可以无缝集成到Java...