forked from winterbe/java8-tutorial
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathNashorn2.java
More file actions
39 lines (30 loc) · 1.07 KB
/
Nashorn2.java
File metadata and controls
39 lines (30 loc) · 1.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package com.winterbe.java8;
import jdk.nashorn.api.scripting.ScriptObjectMirror;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import java.io.FileReader;
import java.util.Arrays;
/**
* Calling java methods from javascript with nashorn.
*
* @author Benjamin Winterberg
*/
public class Nashorn2 {
public static String fun(String name) {
System.out.format("Hi there from Java, %s", name);
return "greetings from java";
}
public static void fun2(Object object) {
System.out.println(object.getClass());
}
public static void fun3(ScriptObjectMirror mirror) {
System.out.println(mirror.getClassName() + ": " + Arrays.toString(mirror.getOwnKeys(true)));
}
public static void fun4(ScriptObjectMirror person) {
System.out.println("Full Name is: " + person.callMember("getFullName"));
}
public static void main(String[] args) throws Exception {
ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn");
engine.eval(new FileReader("res/nashorn2.js"));
}
}