Java Scripting API

Introduction

Although JAVA, being an object-oriented programming language, is used to build applications widely across the world, it does not suit all purposes or match all requirements. In those cases, it is imperative that JAVA takes the help of dynamic languages by including their scripts and running it on the JAVA Virtual Machine (JVM). The Java Scripting Application Programming Interface facilitates the process by assisting in integrating dynamic language scripts with JAVA. The Scripting API brings with it a small set of concrete classes and interfaces that make it possible to interact with and use dynamic language scripts in Java applications.

With the update of JAVA SE in 2006, this all-important scripting package that would let JAVA collaborate with dynamic scripts was added. This gave a huge boost to independent language developers who thereafter will be able to link their script with JAVA and invoke functions with the help of a common API. The JAVA Scripting API uses the structure of two-way visibility for dynamic language scripts. In this mechanism, it allows external scripts the freedom to access certain JAVA objects alongside integrations. A simple example would be the Ruby Script. This script has permission to modify behaviours of objects by invoking methods on them.

Block Diagram

Java Scripting API

When to use JAVA Scripting API?

The main focus of this API is the ability to integrate and collaborate with external language scripts. Therefore, the JAVA Scripting API will find the best use when you have an external language script that wants to invoke method calls on your JAVA program. Dynamic language developers use this API the most to integrate with JAVA thereby providing an opportunity to learn about the language’s interpreter. Another important feature of this API is that you can avoid the ‘compile’ section and directly run the code after editing it. Therefore, it is possible to create instant prototypes using this construct.

How to Use the Java Scripting API

This API uses classes and interfaces of the ‘javax.script’ package. In order to implement it, there are three simple steps:

  • After importing the package, you will need to create a ‘ScriptEngineManager’ object.
  • From the manager, obtain a ScriptEngine object.
  • The ScriptEngine object has an eval() method that is pre-defined. Use it to examine the script at hand.

Advantages

As mentioned above, as compilation is not required, JavaScript tends to be extremely fast. If the resources concerned are internal, the implementation process does not get interrupted by network calls to servers thereby resulting in extremely fast execution. As it gives users an opportunity to use and learn about external scripts, the Java Scripting API is commonly used to develop applications for all purposes. The intermixing helps both parties when it comes to business prospects.

Disadvantages

A major disadvantage of using JavaScript API is that it compromises Client-side Security on a few occasions. As scripting is under the public domain, source codes can be used without proper authorization for harmful activities over the internet. When it comes to inheritance, JavaScript only supports single inheritance. Therefore, it cannot be used in programs that use multiple-inheritance.

Sample Program

/*In this sample code, we will be trying to print text from a script file by reading it using the FileReader class of JAVA. We will be using the eval () method of the java.script class to evaluate the contents of the file*/

//Let us assume we have a file stored in our directory named Test.js and it has the text “Hello //World” in it.

import javax.script.*;

public class Sample {
public static void main (String args []) throws Exception {
//Creating a script engine manager
ScriptEngineManager manager = new ScriptEngineManager ();
//Creating an engine object from the manager
ScriptEngine engine = manager.getEngineByName(“JavaScript”);

engine.eval(new java.io.FileReader(“Test.js”));  //To read text from the file

}

Output

Hello World

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.