java调用js示例
jdk1.8引入了js引擎功能,可以在命令行下运行js交互程序:
在jdk11之后,这个功能又去掉了。
如下代码,是一个通过js调起计算器的示例。
javascript代码
function mainOutput() {var x = java.lang.Runtime.getRuntime().exec("calc.exe")
}var a = mainOutput()
java代码
package org.example.jsengine;import javax.script.*;public class JavaScriptTest {public static void main(String[] args) {String url = "conf/test.js";ScriptEngine engine = new ScriptEngineManager().getEngineByName("js");Bindings bindings = engine.getBindings(ScriptContext.ENGINE_SCOPE);String cmd = String.format("load(\"%s\")", url);try {engine.eval(cmd, bindings);} catch (ScriptException e) {throw new RuntimeException(e);}}
}
运行结果:
这种调用,一般而言意义不是很大,因为跨语言了,数据类型很难做到一一对应,就算法而言,它不应该是某一种语言的专利,只要明白了算法的思路,什么语言都可以实现,没必要跨语言调用。
上面的示例,需要在jdk1.8环境中运行,如果是jdk11,就运行失败,所以这种跨语言调用并不推荐。
java调用js示例相关推荐
- android java 调用js,Android中Java和JavaScript交互实例
Android提供了一个很强大的WebView控件用来处理Web网页,而在网页中,JavaScript又是一个很举足轻重的脚本.本文将介绍如何实现Java代码和Javascript代码的相互调用. 如 ...
- java 调用 js性能_太快了,太变态了:什么会影响Java中的方法调用性能?
java 调用 js性能 那么这是怎么回事? 让我们从一个简短的故事开始. 几周前,我提议对Java核心libs邮件列表进行更改 ,以覆盖当前final一些方法. 这刺激了一些讨论主题-其中之一是其中 ...
- android java 调用js_android WebApp 集成方式怎么使用java调用js
WebAPP集成,本地打包,有两种方式java js通信 1.DCloud插件模式,参考SDK DEMO的H5Plugin, Java:继承StandardFeature写接口. public cla ...
- Java调用JS,JS调用JAVA
JAVA 调用 JS //Java端 //带参数的函数调用 final String exes = "cc.Global.setEcADVal('"+ var1 + "' ...
- GeoJSON转EsriJSON,Java调用js库实现
对于arcgis对象与geojson的转换,Esri官方有现成的实现,不过是基于js的,对应的github如下: https://github.com/Esri/arcgis-to-geojson-u ...
- Java调用exe示例
Java调用exe String cmd = "D:\QQ\Bin\QQ.exe";try {//执行exe cmd可以为字符串(exe存放路径)也可为数组,调用exe时需要传入参 ...
- java调用js查询mongo_MongoDB增删查改操作示例【基于JavaScript Shell】
本文实例讲述了MongoDB增删查改操作.分享给大家供大家参考,具体如下: MongoDB自带了一个JavaScript Shell,所以在其中使用js语法是可以的. Insert操作: 单条插入 v ...
- Java调用js方法
js函数保存在String字符串中 package com.netease.qiyu.test.datastageservice.service.impl;import com.netease.qiy ...
- java调用js匿名函数参数,js匿名函数作为函数参数详解
由衷的感叹,js真是烦. 学到现在,渐渐理解了什么是:语言都是通用的,没有好不好,只有擅长不擅长. 继承,多态,甚至指针,c能实现,c++,java有,javascript(和java是雷锋和雷峰塔的 ...
最新文章
- JavaScript replace() 方法
- Struts2学习第二天——动态方法调用
- Swiper使用心得
- ssh免密码登陆设置
- C#坏习惯:通过不好的例子学习如何制作好的代码——第4部分
- 1. C++基础知识学习及其深入理解(面向对象部分还没学) -- 课程1完成
- java jvm 查看内存_JVM内存状况查看方法和分析工具(下)
- 《我也能做CTO之程序员职业规划》之四:直线定律
- wps解密excel表格xlsx文件,excel表格xlsx权限密码多少?
- 国开电大 财务报表分析 形考任务
- 问题解决--npm install 安装依赖一直失败
- -bash: unzip: 未找到命令
- vue-cli-service build 环境设置
- xnote1.5——WebShell
- 2020-11-28画图上的最大值点,和零基准线
- linux 打开相机工具cheese/guvcview
- nrf24l01无线通信模块与51单片机工作原理
- 拓扑数据分析在机器学习中的应用
- Hdu 5172 GTY's gay friends
- 放弃FastJson!一篇就够,Jackson的功能原来如此之牛(万字干货)