问题标签 [rjb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
irb - 在 irb 上要求“rjb”失败
我想使用 rjb 来调用standford parser。我已经设法为 rjb 安装 gem 并按照 rjb 网站中的建议设置 JAVA_HOME 路径。
有人可以告诉我有什么问题吗?
java - 使用 Ruby to Java Bridge (RJB) 如何访问具有通用签名的 Scala 类?
例如,尝试从 Ruby 访问适用于 Kafka 的 Scala/Java API,(在 require 和 Rjb::load 步骤之后)
在 Kafka API 中,ProducerData 方法定义为:
运行文件后的结果是:
如何正确访问具有泛型类型签名的类?
ruby-on-rails - 将 Java 工具与 Ruby on Rails 集成
我正在寻找一种解决方案,用于在用 Ruby on Rails 编写的 Web 应用程序接收请求之前调用 JAVA API 来执行一组操作。我查看了各种方法,发现机架中间件很有用。可以在中间件堆栈顶部指定用 ruby 编写的模块。
但是如何从 ruby 调用 JAVA API。Ruby on Bridge 是它的解决方案之一,它稳定吗?还是有任何其他方法可以实现我想要的?关于使用 JRuby 的任何想法。
ruby - RJB + 乘客。RJB 出现不调用 Java
我对 RJB 和Passenger 有一些问题。
我的系统:Debian 6 Java JDK 7 Apache2 + Passenger Ruby 1.9.2 Rails 3.2.6
我正在使用 jasper-rails gem 通过我的 RoR 应用程序阅读我的 .jasper 报告。在我的开发机器(通过 webrick)上,一切运行正常,但是当我单击报告链接时将其上传到我的生产服务器(Passenger + Apache2)时,它需要大量时间处理并且不会去任何地方。
在单击生成报告的同时,我在 linux 上进行了一个运行“top”的测试,我意识到 java 进程没有被创建,看起来它没有被调用。
JAVA_HOME 和 LD_LIBRARY_PATH 在系统和我的环境中正确设置。rb 有人知道如何解决或调试这个问题吗?
在日志文件上,我没有收到任何错误或警告。
任何帮助将不胜感激。
提前感谢人们。
遵循我的 environment.rb 设置:
ruby-on-rails - rjb `import': 无法从 app/java/test.rb:4:in ` 创建 Java VM (RuntimeError)'
我正在尝试在我的 rails 应用程序中导入 java 代码。
但是当我在我的gem文件中包含一个'rjb'gem并编写一个简单的测试代码时,
它显示了这个问题:
我的 test.rb 文件是:
我不知道现在该怎么办.. 任何帮助将不胜感激。先感谢您!
java - Sqlite 与 ruby java 桥接
我正在尝试使用来自https://bitbucket.org/xerial/sqlite-jdbc#markdown-header-usage的 Rjb 和 JDBC 驱动程序连接到 sqlite 数据库
我无法弄清楚如何使用 Rjb 调用以下 Java:
有没有人成功使用 Rjb 连接到 sqlite?
到目前为止,我的 RJB 代码如下,并抛出异常'java.sql.SQLException:没有为 jdbc:sqlite:/Users/obrientimothya/Dropbox/development/vle/db/development.sqlite3 找到合适的驱动程序'
java - 尝试使用 Ruby Java Bridge (RJB) gem 时出现错误“无法创建 Java VM”
我正在尝试实现 Ruby Java Bridge (RJB) gem 来与 JVM 对话,以便我可以运行 Open-NLP gem。我在 Windows 8 上安装并运行了 Java。所有迹象,至少我所知道的,都是 Java 已安装并运行。但是,尝试使用 RJB 失败并显示消息“无法创建 Java VM”。(在其他情况下,我有时会得到“Fiddle:Module 的未定义方法 `dlopen'”,这也是难以理解的。)
我最初只是按照默认设置安装了 JDK。由于我的系统是 64 位系统,因此安装了 64 位 Java。我不确定 Ruby 和 RJB 是否会处理这个问题,所以我安装了 32 位 JRE。但是,错误是相同的。
我可以运行任何进一步的测试来确保 JVM 在 Ruby 之外运行吗?
有人可以告诉我运行 Windows/Ruby/RJB/JVM 可能需要做什么吗?
谢谢...
我正在使用 BitNami Rubystack 和 Ruby 1.9.3p448 运行 Windows 8。
根据 testjava.jsp,Java 似乎可用:
这是代码,包括我找到它的 URL:
以下是错误消息:
我找不到任何关于它为什么“无法创建 Java VM”的额外信息。如果我可以获得更多信息,那将真的很有帮助。我将不胜感激该信息或对此的修复。谢谢...
编辑以添加有关 RJB 的 OPEN-NLP 要求的信息...
这是我试图运行的代码,取自 Github/Open-nlp:
此时代码中:
调用链是 dl.rb、fiddle.rb 和 jar_loader.rb。jarloader.rb 起始行 43:
此时,我在创建 JVM 时遇到同样的错误。所以,我恢复尝试运行 RJB。错误链如下:
java - 使用 RJB(Ruby Java Bridge)的 OpenNLP 中的 java.lang.NullPointerException
我正在尝试使用 open-nlp Ruby gem 通过 RJB(Ruby Java Bridge)访问 Java OpenNLP 处理器。我不是Java程序员,所以我不知道如何解决这个问题。任何关于解决它、调试它、收集更多信息等的建议将不胜感激。
环境为 Windows 8、Ruby 1.9.3p448、Rails 4.0.0、JDK 1.7.0-40 x586。宝石是 rjb 1.4.8 和 louismullie/open-nlp 0.1.4。作为记录,这个文件在 JRuby 中运行,但我在那个环境中遇到了其他问题,并且现在更愿意保持原生 Ruby。
简而言之,open-nlp gem 因 java.lang.NullPointerException 和缺少 Ruby 错误方法而失败。我犹豫说为什么会发生这种情况,因为我不知道,但在我看来,无法访问 Jars 文件 opennlp.tools.postag.POSTaggerME@1b5080a 的动态加载,可能是因为 OpenNLP::Bindings::Utils .tagWithArrayList 未正确设置。OpenNLP::Bindings 是 Ruby。实用程序及其方法是 Java。Utils 应该是“默认”的 Jars 和 Class 文件,这可能很重要。
我在这里做错了什么?谢谢!
我正在运行的代码是直接从github/open-nlp复制而来的。我的代码副本是:
失败的行是第 73 行:(令牌 == 正在处理的句子。)
tagger.tag 调用 open-nlp/classes.rb 第 13 行,这是引发错误的地方。那里的代码是:
此时抛出的 Ruby 错误是:`method_missing': unknown exception (NullPointerException)。调试这个,我发现错误 java.lang.NullPointerException。args[0] 是正在处理的句子。@proxy_inst 是 opennlp.tools.postag.POSTaggerME@1b5080a。
OpenNLP::Bindings 设置 Java 环境。例如,它设置要加载的 Jars 以及这些 Jars 中的类。在第 54 行,它为 RJB 设置了默认值,它应该设置 OpenNLP::Bindings::Utils 及其方法,如下所示:
utils.jar 和 Utils.java 位于 CLASSPATH 中,而其他 Jars 正在加载。它们正在被访问,这是经过验证的,因为如果其他 Jar 不存在,它们会抛出错误消息。类路径是:
应用程序罐子在 D:\BitNami\rubystack-1.9.3-12\ruby\lib\ruby\gems\1.9.1\gems\open-nlp-0.1.4\bin 中,如果它们不存在我在其他罐子上收到错误消息。...\bin 中的 Jars 和 Java 文件包括:
Utils.java如下:
因此,它应该定义 tagWithArrayList 并导入 opennlp.tools.postag.POSTagger。(OBTW,只是为了尝试,我在这个文件中将 POSTagger 的发生率更改为 POSTaggerME。它什么也没改变......)
工具 Jar 文件 opennlp-tools-1.5.2-incubating.jar 包括 postag/POSTagger 和 POSTaggerME 类文件,正如预期的那样。
错误消息是:
修改后的 Utils.java:
修改错误信息:
将 Utils.java 的错误修改为“import java.lang.Object;”:
从 OpennlpTryer 中删除的救援显示 classes.rb 中的错误:
同样的错误,但所有救援都被删除了,所以它是“原生 Ruby”
修改后的 Utils.java:
我在从 util.jar 解压缩的 Utils.class 上运行 cavaj,这就是我发现的。它与 Utils.java 有很大不同。两者都安装了 open-nlp 1.4.8 gem。我不知道这是否是问题的根本原因,但这个文件是它破坏的核心,我们有一个重大差异。我们应该使用哪个?
从 10/07 开始使用的 Utils.java,编译并压缩到 utils.jar 中:
此处第 110 行的 BindIt::Binding::load_klass 发生故障:
消息如下,但是它们在识别的特定方法方面不一致。每次运行都可能显示不同的方法,POSTagger、ChunkerME 或 NameFinderME 中的任何一种。
这些错误的有趣之处在于它们源自 OpennlpTryer 第 54 行,即:
此时,OpenNLP 启动 RJB,它使用 BindIt 加载 jar 和类。这远远早于我在这个问题开始时看到的错误。但是,我不禁认为这都是相关的。我真的完全不明白这些错误的不一致之处。
我能够将日志记录功能添加到 Utils.java,在添加“import java.io.*”后编译它并压缩它。但是,由于这些错误,我将其撤出,因为我不知道它是否涉及。我不认为是。但是,由于这些错误是在加载过程中发生的,因此无论如何都不会调用该方法,因此在那里记录将无济于事......
对于其他每个 jar,先加载 jar,然后使用 RJB 导入每个类。Utils 的处理方式不同,并被指定为“默认值”。据我所知,执行 Utils.class 是为了加载自己的类?
10/07 稍后更新:
我想,这就是我所在的地方。首先,正如我今天早些时候所描述的,我在替换 Utils.java 时遇到了一些问题。在我安装修复程序之前,可能需要解决这个问题。
其次,我现在了解 POSTagger 和 POSTaggerME 之间的区别,因为 ME 表示最大熵。测试代码正在尝试调用 POSTaggerME,但在我看来,它像 Utils.java 一样,在实现时支持 POSTagger。我尝试更改测试代码以调用 POSTagger,但它说找不到初始化程序。查看每一个的来源,我在这里猜测,我认为 POSTagger 存在的唯一目的是支持实现它的 POSTaggerME。
源是opennlp-tools文件 opennlp-tools-1.5.2-incubating-sources.jar。
首先我没有得到 Utils 的全部原因?为什么 bindings.rb 中提供的 jars/classes 不够?这感觉就像一个糟糕的猴子补丁。我的意思是,首先看看 bindings.rb 做了什么:
java - 使用 itext 通过 RJB 中的字节数组合并 Pdfs 时出错
将 rjb 与 ruby 1.9.3 和 itext 4.2.0 一起使用:
我想要做的是将 tiff 文件合并到 pdf 中。但是,我希望合并发生在内存中,而不是将 tiff 到 pdf 的转换保存到文件中,然后在文件上运行组合。我没有为 PdfReader 提供文件名,而是看到一些示例说它也可以将字节数组作为输入。我可以让文件版本正常工作,但是当我使用 ByteArrayOutStream 时出现错误,我不知道为什么。
使用文件流时,以下似乎工作正常:
但是当我尝试使用像下面的代码这样的字节数组时,我在 pdfreader 读取字节数组的行上收到错误“未找到作为文件或资源”。
java - Windows 上的 Ruby 32 位和 Java 64 位
我正在使用带有 ruby 的 java bridge(用于 Stanford-Core-NLP),在 Windows 机器上,当 Ruby 是 32 位(193)和 Java 是 64 位时,jrb 似乎无法工作。
可以吗?有没有比安装 Ruby 64(许多 gem 不支持)更好的解决方案?我必须使用 Java 64 来支持 4giga Java 应用程序。
谢谢这是错误消息: