Main.java
import javax.script.*;
import java.io.*;
public class ScriptDemo {
public static void main(String[] args) throws Exception {
ScriptDemo.runScript( args[0] );
}
static void runScript( String fileName ) throws Exception {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName( "rhino" );
SimpleScriptContext context = new SimpleScriptContext();
SimpleBindings bindings = new SimpleBindings();
context.setBindings( bindings, SimpleScriptContext.GLOBAL_SCOPE);
FileInputStream fis = new FileInputStream( new File( fileName ));
InputStreamReader reader = new InputStreamReader( fis );
System.out.println( engine.eval( reader ) );
}
}
Person.js
// functions are objects
function fa() {print("foo\n");};
var so = function () {print("bar\n");};
fa();
so();
var la = fa;
la();
// add an element to the end of an array
mylist = ["oats", "peas", "beans"];
mylist[mylist.length] = "barley";
// print the array - the for loop works differently
for (el in mylist) println(mylist[el]);
function Person( name ) {
this.name = name;
};
Person.prototype.getName = function() {
return this.name;
};
var programmer = new Person( "Greg" );
programmer.getName();
Compile and Run
[greg:ooscript] javac ScriptDemo.java
[greg:ooscript] java ScriptDemo Person.js file:index.html
foo
bar
foo
oats
peas
beans
barley
Greg
[greg:ooscript]