问题标签 [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.

0 投票
1 回答
409 浏览

irb - 在 irb 上要求“rjb”失败

我想使用 rjb 来调用standford parser。我已经设法为 rjb 安装 gem 并按照 rjb 网站中的建议设置 JAVA_HOME 路径。

有人可以告诉我有什么问题吗?

0 投票
0 回答
322 浏览

java - 使用 Ruby to Java Bridge (RJB) 如何访问具有通用签名的 Scala 类?

例如,尝试从 Ruby 访问适用于 Kafka 的 Scala/Java API,(在 require 和 Rjb::load 步骤之后)

在 Kafka API 中,ProducerData 方法定义为:

运行文件后的结果是:

如何正确访问具有泛型类型签名的类?

0 投票
0 回答
732 浏览

ruby-on-rails - 将 Java 工具与 Ruby on Rails 集成

我正在寻找一种解决方案,用于在用 Ruby on Rails 编写的 Web 应用程序接收请求之前调用 JAVA API 来执行一组操作。我查看了各种方法,发现机架中间件很有用。可以在中间件堆栈顶部指定用 ruby​​ 编写的模块。

但是如何从 ruby​​ 调用 JAVA API。Ruby on Bridge 是它的解决方案之一,它稳定吗?还是有任何其他方法可以实现我想要的?关于使用 JRuby 的任何想法。

0 投票
1 回答
393 浏览

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 设置:

0 投票
1 回答
1213 浏览

ruby-on-rails - rjb `import': 无法从 app/java/test.rb:4:in ` 创建 Java VM (RuntimeError)
'

我正在尝试在我的 rails 应用程序中导入 java 代码。

但是当我在我的gem文件中包含一个'rjb'gem并编写一个简单的测试代码时,

它显示了这个问题:

我的 test.rb 文件是:

我不知道现在该怎么办.. 任何帮助将不胜感激。先感谢您!

0 投票
1 回答
226 浏览

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 找到合适的驱动程序'

0 投票
1 回答
3522 浏览

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。错误链如下:

0 投票
2 回答
1332 浏览

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 做了什么:

0 投票
0 回答
504 浏览

java - 使用 itext 通过 RJB 中的字节数组合并 Pdfs 时出错

将 rjb 与 ruby​​ 1.9.3 和 itext 4.2.0 一起使用:

我想要做的是将 tiff 文件合并到 pdf 中。但是,我希望合并发生在内存中,而不是将 tiff 到 pdf 的转换保存到文件中,然后在文件上运行组合。我没有为 PdfReader 提供文件名,而是看到一些示例说它也可以将字节数组作为输入。我可以让文件版本正常工作,但是当我使用 ByteArrayOutStream 时出现错误,我不知道为什么。

使用文件流时,以下似乎工作正常:

但是当我尝试使用像下面的代码这样的字节数组时,我在 pdfreader 读取字节数组的行上收到错误“未找到作为文件或资源”。

0 投票
1 回答
222 浏览

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 应用程序。

谢谢这是错误消息: