问题标签 [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 投票
0 回答
107 浏览

jruby - 如何从 Java 加载、编译和调用 JRuby 文件?

我找到的最好的文档是this,但它有点过时了——已弃用或缺少方法。我想,从Java代码:

  1. 从文件系统加载.rb文件。
  2. 确保将其编译为可能的最快形式,因为这存在于长时间运行的服务器中。
  3. 调用该文件中的函数或类,传入在 Java 端构造的值。
  4. (如果可能)能够重复步骤 1-3,如果.rb文件更改,并获取新的 Ruby 代码。
0 投票
1 回答
52 浏览

jruby - __persistence__ NoMethodError

我在 rspec 中模拟一个 java 接口

当我运行 rspec 时,一切正常,但我看到一条警告,指示我执行以下操作

https://github.com/jruby/jruby/wiki/Persistence

当我尝试设置

我得到一个 NoMethodError。我正在使用 jruby 1.7.4

0 投票
0 回答
560 浏览

java - 无法在 JRuby 中加载我的自定义 Java 类

我创建了一个 java 项目。文件夹结构就像

我创建了这个项目 test.jar 的 jar。

我的 ruby​​ 文件中的代码如下。

当我执行此脚本时,我收到此错误。

请让我知道在 ruby​​ 中使用自定义 java 类的方法是什么?

TestJavaCall.java的源代码

0 投票
1 回答
1008 浏览

java - 在 Jruby 中显式覆盖 Java 方法?

是否有明确的方法来覆盖 JRuby 子类中的 Java 方法?

在 Java 中,我会使用 @override 来显式地进行子类化。

当我在 Jruby 中覆盖它时,我想要这样的东西:

现在,是否有任何等效的技术来实现安全覆盖?由于仅依赖方法命名,它似乎可以避免 java 集成中一些难以跟踪的错误。

(实际上我发现它通常在 Ruby 中也很方便,只是程度较小..)

0 投票
1 回答
1321 浏览

java - org.jruby.embed.EvalFailedException: (LoadError) no such file to load

I've created jar file from ruby code using warbler. File structure within jar is as below:

core.jar
----core
--------lib
------------gui.class
------------gui.rb

I've other java application from which I want to run "connect" function which is in Gui class of gui.rb.

I've tried below code in java:

#xA;

The last line in above code is giving me the exception "LoadError: no such file to load -- gui". How can I call the function of gui.rb?

0 投票
1 回答
511 浏览

jruby - 如何在 JRuby 中定义 Java 接口而不是实现一个?

我想从需要 Java 接口而不是具体类的 JRuby 调用 Java API。Java API 使用 java.lang.reflect.proxy 来实现基于接口的功能。我发现了许多使用 JRuby 实现 java 接口的示例。但是,我需要在 JRuby 中简单地定义一个 java 接口,而不是实现一个。我当然可以在 Java 中定义一个接口,并通过 intf.java_class 将其用作 API 的接口参数。但是,为了方便起见,我希望能够直接从 JRuby 代码中定义接口。

更新: 这是我想从 JRuby 调用的 Java API:

Java API 要求 intf 参数是一个接口,而不是一个类。这是因为实现使用 java.lang.reflect.proxy 来提供可以通过提供的接口访问的数据对象的集合。Java 的 java.lang.reflect.proxy 仅适用于接口。例如,假设我正在从表示日志语句的数据库中读取行。如果我从 java 调用它,我可能会通过以下方式定义我的数据

并将 LogRecord.class 作为第一个参数传递给 Query.execute 方法。

0 投票
1 回答
1050 浏览

java - 在 JRuby 中导入 java 类

我正在尝试在 Jruby 中导入 Java 类

我在这里做错了什么?

0 投票
2 回答
99 浏览

jruby - 在文件中搜索模式并在 jruby 中打印

我有一个包含 n 行的文件。我需要在其中搜索一个字段(SessionId 及其值)并打印其相应的值。

我已经编码以访问文件并逐行打印。在获取字段并打印其值时需要帮助。

文件示例行:

注意:该文件在指定字段的上方和下方有很多行

代码:

请帮助我添加到此代码中的内容?

0 投票
0 回答
55 浏览

java - ruby 脚本中 exec 的相同进程 ID

有没有人知道 JRuby 实现 exec 的实现。

我有两个简单的 ruby​​s 脚本:Test.rb 通过 exec 调用另一个名为.rb,如下所示:

执行完./test.rb后,我在执行Test.rb的过程中对java进程进行了ps,并调用了.rb。结果是:

我的理解是 exec 应该调用另一个 Jruby 进程,但我没有看到它。有谁知道原因吗?

0 投票
1 回答
770 浏览

ruby - 如何强制 JRuby 使用 java Longs 而不是 Fixnums 初始化 java ArrayList?

我团队中的某个人正在编写一个 ruby​​/cucumber 测试,该测试调用一个带有List<Long>参数的 java api。我正在努力帮助他,但我的 jruby 知识非常有限。每当调用 java 方法时,List<Long>java 方法都会抛出某种类转换异常,因为 ArrayList 包含所有 rubyFixnum​​ 对象。

以下简化代码显示我总是得到一个 Fixnum 而不是 Java::JavaLang::Long

即使以下显示 12.to_java 产生一个 Long

我也试过不使用构造函数 args

并且直接实例化 java.lang.Long

我的最后一次尝试