如何快速上手Rhino:5分钟搭建Java中的JavaScript执行环境
Rhino是一个完全用Java编写的开源JavaScript实现,它允许开发者在Java应用中无缝集成JavaScript代码。无论是构建脚本引擎、扩展Java应用功能,还是实现跨语言交互,Rhino都提供了轻量级且高效的解决方案。本文将带你快速搭建Rhino环境并完成第一个JavaScript执行示例。
📋 环境准备:3步完成安装
1. 克隆项目代码库
git clone https://gitcode.com/gh_mirrors/rh/rhino
cd rhino
2. 构建Rhino(需要Java 11+)
./gradlew shadowJar
构建成功后,可在rhino-all/build/libs/目录下找到可执行JAR文件。
3. 验证安装
java -jar rhino-all/build/libs/rhino-all-2.0.0-SNAPSHOT.jar -e "print('Rhino JavaScript环境搭建成功!')"
🚀 快速开始:两种运行模式
交互式Shell模式
直接启动Rhino shell进行即时JavaScript代码测试:
./gradlew run -q --console=plain
进入shell后可直接输入JavaScript代码:
> 1 + 2 * 3
7
> function greet(name) { return `Hello, ${name}!`; }
> greet("Rhino")
Hello, Rhino!
执行脚本文件模式
创建test.js文件:
// test.js
const array = [1, 2, 3, 4];
const sum = array.reduce((a, b) => a + b, 0);
print(`数组求和结果: ${sum}`);
通过Rhino执行:
java -jar rhino-all/build/libs/rhino-all-2.0.0-SNAPSHOT.jar test.js
📚 核心模块与应用场景
Rhino 2.0+采用模块化架构,主要包含以下核心模块:
- rhino:基础运行时,必备核心模块
- rhino-tools:提供Shell和调试工具(包含
print等便捷函数) - rhino-engine:实现Java ScriptEngine接口
- rhino-xml:支持E4X XML标准
典型应用场景:
- 动态脚本执行:examples/src/main/java/RunScript.java
- Java与JS交互:examples/src/main/java/Matrix.java
- 扩展应用功能:rhino-tools/src/main/java/org/mozilla/javascript/tools/shell/Main.java
⚙️ 高级配置:优化你的Rhino环境
设置类路径
export CLASSPATH=$(./gradlew -q printClasspath)
java org.mozilla.javascript.tools.shell.Main
启用JLine控制台(支持命令历史)
java -jar rhino-all/build/libs/rhino-all-2.0.0-SNAPSHOT.jar
Java 16+权限配置
java --add-opens java.base/java.lang=ALL-UNNAMED -jar rhino-all/build/libs/rhino-all-2.0.0-SNAPSHOT.jar
📝 测试与验证
运行项目内置测试套件:
git submodule init
git submodule update
./gradlew check
查看测试覆盖率报告:
./gradlew testCodeCoverageReport
open ./tests/build/reports/jacoco/testCodeCoverageReport/html/index.html
📚 学习资源
- 官方文档:docs/index.md
- 兼容性表:docs/compat/engines.html
- 示例代码:examples/src/main/java/
- 测试用例:tests/testsrc/jstests/
通过以上步骤,你已经掌握了Rhino的基本使用方法。这个强大的Java-JavaScript桥接工具,将为你的项目带来更多灵活性和扩展性。无论是开发动态脚本功能还是构建复杂的跨语言应用,Rhino都能成为你的得力助手!
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



