jruby - 嵌入式 JRuby 访问 ScriptEngine 可用的类
问题描述
我正在向已经支持 Jython 的系统添加 JRuby 支持。
Jython 对父类加载器环境的访问权与 JRuby 的访问权之间似乎有些不同。Jython 似乎可以完全访问调用 python 脚本的 ScriptEngine 的任何类,JRuby 似乎只能访问 java.* 项。
以下 Jython 代码有效并创建了一个日志条目:
from org.slf4j import LoggerFactory
def scriptLoaded(id):
LoggerFactory.getLogger("org.openhab.core.automation.examples").info("Hello world!")
以下 jruby 代码确实会导致错误:
def scriptLoaded(id)
org.slf4j.LoggerFactory.getLogger("org.openhab.core.automation.examples").info("Hello Ruby")
end
错误:
NameError: missing class name (`org.slf4j.LoggerFactory')
method_missing at org/jruby/javasupport/JavaPackage.java:252
scriptLoaded at <script>:35
这是在同一系统中运行的。
JRuby 是否有一种方法可以搜索其父类加载器?
解决方案
推荐阅读
- sql-server - 使用列名和数据查询列出表,但不是列名需要来自另一个表的业务列名
- xamarin.forms - Xamarin UWP:视频播放器组件似乎不适用于打开 .NET Native 工具链的编译
- shiny - 在闪亮中使用 includeHTML 显示 html 文件不适用于 renderUI()
- php - While 循环仅显示数据库中的第一行
- delphi - 如何确定数组中的数字是否为偶数
- javascript - 禁用按钮时添加警告
- c++ - 联合类型的模板特化
- laravel - 获取相关数据
- boto3 - AWS 凭证
- highcharts - 如何调整第一个类别名称在 xAxis 上的位置?