问题标签 [jruby-java-interop]

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 投票
3 回答
850 浏览

java - JRuby 和 Java 对象

请告诉我是否可以执行以下操作:

  • 在 Java 中创建特定类的实例
  • 将其传递给 JRuby 以对其进行处理
  • 继续使用 Java 中的“修改”版本

您可以提供一个小的工作示例吗?

编辑:事实证明,嵌入是实现这一目标的最简单方法。有关嵌入 JRuby的更多信息。

0 投票
2 回答
7532 浏览

jruby - 我可以将 Java 类文件导入 JRuby 吗?

文档似乎表明,为了让我将 Java 类导入 JRuby,它们必须位于 JAR 文件中:

“为了在 JRuby 的 jar 文件中使用资源,jar 文件必须位于类路径中,或者您可以使用 require 方法使其可用”(http://wiki.jruby.org/wiki/Calling_Java_from_JRuby#Require_a_jar_file_to_make_resources_in_the_jar_discoverable_within_JRuby

是否可以直接导入 .class 文件?

谢谢!

0 投票
1 回答
3352 浏览

java - 在 JRuby 中转换对象

有没有一种方法可以将一个 Java 对象从 JRuby 显式转换为另一个 Java 类?

有时我希望能够调用SomeJavaClass#aMethod(MySuperClass)而不是SomeJavaClass#aMethod(MyClass)从 JRuby 调用。

从Java,我会这样做:

但我没有看到#castruby​​ 方法或类似的东西来做 JRuby 的等价物。

请注意Casting Java Objects From JRuby的问题缺乏一般情况的答案,这就是我重新提出这个问题的原因。

0 投票
4 回答
7121 浏览

jruby - 在 Jruby 中使用自定义 Java 类文件

我正在尝试通过最新版本的 Jruby (1.5.1)、Ruby 1.8.7 和 Java 1.6.0_06 执行一些自定义 Java 代码。我已经尝试了类文件并将其放入 jar 方法中。当我尝试

或者

尝试这两种方法,我无法访问 myClass 或 jar 文件中的任何其他文件。网络上用于导入 java 类的其他变体导致以下错误:

我还检查了 StackOverFlow 上的解决方案,我仍然得到相同的结果。我想知道这是否可能是更深层次的问题。

0 投票
1 回答
868 浏览

java - Java 与 jRuby 互操作的最佳参考信息来源

您发现 jRuby 与 Java 互操作语法的最佳来源是什么?昨天我花了很长时间才找到有关添加到类路径的东西,而 jruby.org 站点并没有太大帮助。好奇其他人使用的参考资料。谢谢。

0 投票
1 回答
3565 浏览

jruby - 如何在 JRuby on Rails 项目中正确添加到 CLASSPATH?

我通过在 CLASSPATH 中添加了一些外部 jar config/application.rb

这在使用rails server. 加载来自 CLASSPATH 的 jar。但是,在运行时rake未设置类路径。我该如何设置?特别是,我需要在加载我的 gem 之前设置它,因为我使用 JRClj gem,它依赖于我的 CLASSPATH 中已经有 clojure.jar。

(哦,我也尝试将代码放在 environment.rb 中;没有帮助)

我所说的“不工作”是指:

0 投票
1 回答
219 浏览

java - 为什么我的加载 jruby 的可执行 jar 不能在名称中有空格的文件夹下运行,例如程序文件?

我有一个加载 jruby 的可执行 jar。安装程序将 jar 和一些预打包的 jar 库(包括完整的 jruby 和一些 gem)放入安装位置。

一切正常,除了在 Windows 中,当 jar 安装到名称中带有空格的文件夹中时。当 Jruby 遇到来自 jar 打包的 gem 之一的简单“require”(如果重要的话,状态机 gem 中的“require singleton”)时,它会失败。

这不是什么大问题,但我需要 jar 从程序文件下运行。希望有人在那里解决了这个问题:)

堆栈跟踪:

0 投票
0 回答
103 浏览

jruby - 如何生成在 JRuby 中引发异常的 Java 方法签名?(即实现org.quartz.Job等接口)

给定以下代码:

跑步

生成一个抽象类,因为在生成执行方法时似乎忽略了“抛出 org.quartz.JobExecutionException”。

有没有办法在 JRuby 中做到这一点?

0 投票
1 回答
586 浏览

ruby - Java 到 JRuby 到 Resque

我有一个混合 Web 应用程序,它在同一个 Tomcat 中运行一个 Java WAR 文件和一个 JRuby WAR 文件。

我们决定使用 (JRuby) Resque 作为我们的作业队列。排队作业的调用如下所示:

其中 FooWorker 是在 JRuby 端定义和使用的工作类(并包含在 JRuby WAR 文件中),它由 JRuby Resque rake 任务在处理队列中的作业时调用。

我想让 Java 代码能够将任务排入 Resque 队列以由 JRubyFooWorker类处理。

我在https://github.com/tc/call-jruby-from-java-example查看了 Tommy Cheng 的代码。

我怀疑我的代码看起来像:

我的FooWorker班级位于 Rails 应用程序的爆炸式战争文件目录中,该文件是app/workers/foo_worker.rb

我需要做些什么来确保 JRuby 编译器可以访问FooWorker和 Resque JRuby 类来正确编译代码?

0 投票
1 回答
658 浏览

java - 带 --java 标志和不带标志的 jruby AOT 类之间的区别

当我使用 将 ruby​​ 文件编译为 java 类时,使用 just和 with (生成 java 文件)和 justjrubyc编译时会得到不同的输出。为什么?jrubycjrubyc --javajavac

例子:

第一种方法:

第二种方法:

我希望生成的类完全相同,但事实并非如此。幕后在做什么jrubyc

谢谢!