摘要:工具和资料群高级爬虫作者自建群,欢迎加入作者收集的爬虫相关工具和资料正文一些小的片段可以很方便的直接使用直接导入,但是如何使用方法导入使用下载的模块呢答案是使用这个项目。
工具和资料
QQ群 - Javascript高级爬虫 - 作者自建群,欢迎加入!
awesome-java-crawler - 作者收集的爬虫相关工具和资料
正文一些小的javascript片段可以很方便的直接使用ScriptEngine.eval()直接导入,但是如何使用require方法导入使用npm下载的javascript模块呢?
答案是使用jvm-npm这个项目。
首先,创建一个目录放置所有javascript文件,比如:D:path ojs_modules
从jvm-npm下载jvm-npm.js,放到上述目录中
使用npm i
到模块下载目录,通常为
见以下Kotlin示例代码:(注意把js_module换成你需要加载的模块名)
val JS_ROOT = "D:path ojs_modules" val JSE = ScriptEngineManager().getEngineByName("nashorn").apply { System.setProperty("user.dir", JS_ROOT) // 设定jvm-npm的当前目录 eval(Util.readLocalUtfText("$JS_ROOTjvm-npm.js")) // 在ScriptEngine中加载jvm-npm.js println(eval("typeof require")) // 验证require方法已正确引入 eval("var mylib = require("js_module")") // 这时候,就可以用require()方法来引入当前目录中的js模块了 println(eval("typeof mylib")) // 验证js模块已正确加载 } ... val bar = JSE.eval("mylib.foo()") // js代码中可以使用加载的js模块了
注意:
jvm-npm有个bug,如果你的js文件大于64K,则会导致文件截断。
这种情况下你需要编写一个能一次读取完整File或InputStream的java方法,替换掉下面这句:
return new Scanner(input).useDelimiter("A").next()
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/72731.html
摘要:工具和资料群高级爬虫作者自建群,欢迎加入作者收集的爬虫相关工具和资料正文一些小的片段可以很方便的直接使用直接导入,但是如何使用方法导入使用下载的模块呢答案是使用这个项目。 showImg(https://segmentfault.com/img/remote/1460000018765904); 工具和资料 QQ群 - Javascript高级爬虫 - 作者自建群,欢迎加入! a...
摘要:调用通过注册表调用到实例,透过的,调用到中的,最后通过,调用,根据参数相应模块执行。京东的,多端解决方案是一套遵循语法规范的多端开发解决方案。 showImg(https://segmentfault.com/img/bVbuMkw?w=1304&h=808); 对于一项技术,我们不能停留在五分钟状态,特别喜欢一句话,用什么方式绘制UI界面一点不重要,重要的是底层的思维,解决问题和优化...
摘要:调用通过注册表调用到实例,透过的,调用到中的,最后通过,调用,根据参数相应模块执行。京东的,多端解决方案是一套遵循语法规范的多端开发解决方案。 showImg(https://segmentfault.com/img/bVbuMkw?w=1304&h=808); 对于一项技术,我们不能停留在五分钟状态,特别喜欢一句话,用什么方式绘制UI界面一点不重要,重要的是底层的思维,解决问题和优化...
摘要:调用通过注册表调用到实例,透过的,调用到中的,最后通过,调用,根据参数相应模块执行。京东的,多端解决方案是一套遵循语法规范的多端开发解决方案。 showImg(https://segmentfault.com/img/bVbuMkw?w=1304&h=808); 对于一项技术,我们不能停留在五分钟状态,特别喜欢一句话,用什么方式绘制UI界面一点不重要,重要的是底层的思维,解决问题和优化...
阅读 3384·2019-08-30 10:54
阅读 3119·2019-08-29 16:38
阅读 2082·2019-08-26 14:06
阅读 1462·2019-08-23 15:39
阅读 2998·2019-08-23 15:37
阅读 2860·2019-08-23 13:50
阅读 3136·2019-08-22 17:14
阅读 2316·2019-08-22 15:44