Invoke specific script function

This is an example of how to invoke a specific script function. We are using the ScriptEngine interface that provides methods for the basic scripting functionality. Invoking a script function with Java implies that you should:

  • Create a new ScriptEngineManager. The ScriptEngineManager implements a discovery and instantiation mechanism for ScriptEngine classes and also maintains a collection of key/value pairs storing state shared by all engines created by the Manager.
  • Use the getEngineByExtension(String extension) API method to look up and create a ScriptEngine for the js extension.
  • Create a String script that describes a function. In this example, we have created sayHi(name) function that prints a message and the name parameter ans another function, sayHi(), that invokes sayHi(name) function with a null parameter.
  • Use the eval(String script) method to execute the script.
  • Cast the engine to an Invocable engine, that is an interface implemented by ScriptEngines whose methods allow the invocation of procedures in scripts that have previously been executed
  • Use invokeFunction(String name, Object... args) method to call the functions defined in the script.

Let’s take a look at the code snippet that follows:  

package com.javacodegeeks.snippets.core;
import javax.script.ScriptEngineManager;
import javax.script.ScriptEngine;
import javax.script.ScriptException;
import javax.script.Invocable;
public class InvokingFunctionExample {
    public static void main(String[] args) {

  String script =
"function sayHi() {" +
"   sayHi(null);" +
"}" +
" " +
"function sayHi(name) {" +
"   println('Hi' + " +
 ((name == null) ? ' JavaCodeGeeks Felow!' : ' ' + name + '!'));" +

  ScriptEngineManager manager = new ScriptEngineManager();

  ScriptEngine engine = manager.getEngineByExtension("js");
  try {
//cast the engine to Invocable engine.

Invocable invocableEngine = (Invocable) engine;
// Invoke sayHi function without parameter.

// Invoke sayHi function with parameter.

invocableEngine.invokeFunction("sayHi", "username");

  } catch (ScriptException e) {


  } catch (NoSuchMethodException e) {




Hi JavaCodeGeeks Felow!
Hi username!

This was an example of how to invoke a specific script function in Java.

Ilias Tsagklis

Ilias is a software developer turned online entrepreneur. He is co-founder and Executive Editor at Java Code Geeks.
Notify of

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

Inline Feedbacks
View all comments
Back to top button