- 论坛徽章:
- 0
|
JDK 1.6 支持脚本编程
import javax.script.*;
/**
* @author lovetide
*
*/
public class JavaScriptingTest {
public static void main(String[] args) throws Exception {
ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine engine = factory.getEngineByName("JavaScript");
if (args.length > 0) {
Object ret = engine.eval(args[0]);
System.out.println(ret.getClass().getName());
System.out.println(ret);
}else{
System.out.println ("用法:");
System.out.println (" java JavaScriptingTest \"<Script Here>\"");
System.out.println ("示例:");
System.out.println (" java JavaScriptingTest \"1+2\"");
System.out.println (" java JavaScriptingTest \"(1+12)*3/4\"");
System.out.println (" java JavaScriptingTest \"Math.sqrt(2)\"");
System.out.println (" java JavaScriptingTest \"Math.sin(30/180*Math.PI)\"");
System.out.println (" java JavaScriptingTest \"Math.min((1+12)*3/4, 5.6)\"");
}
}
}
|
- E:\Test\Java\Eclipse\JavaScriptingTest>java JavaScriptingTest "1+2"
- java.lang.Double
- 3.0
- E:\Test\Java\Eclipse\JavaScriptingTest>java JavaScriptingTest "(1+12)*3/4"
- java.lang.Double
- 9.75
- E:\Test\Java\Eclipse\JavaScriptingTest>java JavaScriptingTest "Math.sin(Math.PI)"
- java.lang.Double
- 1.2246467991473532E-16
- E:\Test\Java\Eclipse\JavaScriptingTest>java JavaScriptingTest "Math.min((1+12)*3/4, 5.6)"
- java.lang.Double
- 5.6
- E:\Test\Java\Eclipse\JavaScriptingTest>java JavaScriptingTest "Math.sin(30)"
- java.lang.Double
- -0.9880316240928618
- E:\Test\Java\Eclipse\JavaScriptingTest>java JavaScriptingTest "Math.sin(Math.PI/6)"
- java.lang.Double
- 0.49999999999999994
复制代码
参考:
http://java.sun.com/
javase/6/docs/technotes/guides/scripting/programmer_guide/index.html
http://scripting.dev.java.net/ |
|