Java examples for Scripting:Bindings
Javascript file
var Employee = Java.type("org.yourpackage.Employee"); var bigDecimal = Java.type("java.math.BigDecimal"); var Developer = Java.extend(Employee, { grossPay: function(hours, rate){ var bonus = 500; return hours.multiply(rate).add(new bigDecimal(bonus)); } }); var javaDev = new Developer(); javaDev.first = "Joe"; javaDev.last = "Dynamic"; print(javaDev + "'s gross pay for the week is: " + javaDev.grossPay(new bigDecimal(60), new bigDecimal(80)));
package org.yourpackage; import java.util.Date; public class Employee { private int age; private String first; private String last; private String position; private Date hireDate; public Employee(){ } public Employee(String first, String last, Date hireDate){ this.first = first; this.last = last; this.hireDate = hireDate; } /** * @return the age */ public int getAge() { return age; } /** * @param age the age to set */ public void setAge(int age) { this.age = age; } /** * @return the first */ public String getFirst() { return first; } /** * @param first the first to set */ public void setFirst(String first) { this.first = first; } /** * @return the last */ public String getLast() { return last; } /** * @param last the last to set */ public void setLast(String last) { this.last = last; } /** * @return the position */ public String getPosition() { return position; } /** * @param position the position to set */ public void setPosition(String position) { this.position = position; } /** * @return the hireDate */ public Date getHireDate() { return hireDate; } /** * @param hireDate the hireDate to set */ public void setHireDate(Date hireDate) { this.hireDate = hireDate; } public String toString(){ return first + " " + last; } public BigDecimal grossPay(BigDecimal hours, BigDecimal rate){ return hours.multiply(rate); } } import java.util.logging.Level; import java.util.logging.Logger; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import javax.script.ScriptException; public class Main { public static void main(String[] args){ ScriptEngineManager sem = new ScriptEngineManager(); ScriptEngine nashorn = sem.getEngineByName("nashorn"); try { nashorn.eval("load('test.js');"); } catch (ScriptException ex) { Logger.getLogger(Recipe18_9.class.getName()).log(Level.SEVERE, null, ex); } } }