我正在寻找 Nashorn 的模块系统。据我所知,CommonJS 是处理 JS 模块的方法。我浏览了该列表( here 和 here ),发现 Java 的 CommonJS 实现方式很少。
Narwhal不再活跃,它是 documentation不再托管在 GitHub 上。是否有支持 Java 的现有 CommonJS 实现,或者我应该开始一个新项目吗?
最佳答案
在这里查看 jvm-npm https://github.com/nodyn/jvm-npm 。该项目被 nodyn 使用作为 CommonJS 模块系统。它支持 NPM,这意味着您可以直接从 NPM 加载模块,但它不提供任何 Node.js API。
这是一个简单的用法示例:
$ npm install pegjs
npm http GET https://registry.npmjs.org/pegjs
npm http 200 https://registry.npmjs.org/pegjs
pegjs@0.8.0 node_modules/pegjs
$ jrunscript
nashorn> typeof require
undefined
nashorn> load('./jvm-npm.js')
nashorn> typeof require
function
nashorn> var PEG = require('pegjs');
nashorn> typeof PEG
object
它主要是 Javascript,但实际从文件系统加载文件等是使用 Java 完成的。
关于commonjs - 如何将 CommonJS 模块与 Oracle 的新 Nashorn JS 引擎结合使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19500141/