JAVA转让JS功能
今天,在发展中使用js和Java互动。通常我们使用更多的是js转让Java方法。可以使用dwr、Ajax、jquery。突然发现Java转让js然后,我真的没见过,今天,互联网提供以下信息,顺便总结:
条件:jdk1.6支持。1.6一旦死。
js代码例如以下:
function convert (id,str) { if ('505041'==id) { return str; } else { return "A"; } }
Java代码例如以下:
package com.sc; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import javax.script.Invocable; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; public class JsTest { public static void main(String[] args) throws Exception { testJSFile(); } private static void testJSFile() throws Exception { ScriptEngineManager mgr = new ScriptEngineManager(); ScriptEngine engine = mgr.getEngineByName("javascript"); engine.eval(readJSFile()); Invocable inv = (Invocable) engine; Object res = (Object) inv.invokeFunction("convert", new String[] { "5050412", "D" }); System.out.println("res:" + res); } private static String readJSFile() throws Exception { StringBuffer script = new StringBuffer(); File file = new File("E:\\workspace\\test4\\WebRoot\\test.js"); FileReader filereader = new FileReader(file); BufferedReader bufferreader = new BufferedReader(filereader); String tempString = null; while ((tempString = bufferreader.readLine()) != null) { script.append(tempString).append("\n"); } bufferreader.close(); filereader.close(); return script.toString(); } }
在Java类中直接run就能够得到例如以下结果:
res:A
在此录制。
版权声明:本文博客原创文章,博客,未经同意,不得转载。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步