问题标签 [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.
jruby - 如何从 Java 加载、编译和调用 JRuby 文件?
我找到的最好的文档是this,但它有点过时了——已弃用或缺少方法。我想,从Java代码:
- 从文件系统加载
.rb
文件。 - 确保将其编译为可能的最快形式,因为这存在于长时间运行的服务器中。
- 调用该文件中的函数或类,传入在 Java 端构造的值。
- (如果可能)能够重复步骤 1-3,如果
.rb
文件更改,并获取新的 Ruby 代码。
jruby - __persistence__ NoMethodError
我在 rspec 中模拟一个 java 接口
当我运行 rspec 时,一切正常,但我看到一条警告,指示我执行以下操作
https://github.com/jruby/jruby/wiki/Persistence
当我尝试设置
我得到一个 NoMethodError。我正在使用 jruby 1.7.4
java - 无法在 JRuby 中加载我的自定义 Java 类
我创建了一个 java 项目。文件夹结构就像
我创建了这个项目 test.jar 的 jar。
我的 ruby 文件中的代码如下。
当我执行此脚本时,我收到此错误。
请让我知道在 ruby 中使用自定义 java 类的方法是什么?
TestJavaCall.java的源代码
java - 在 Jruby 中显式覆盖 Java 方法?
是否有明确的方法来覆盖 JRuby 子类中的 Java 方法?
在 Java 中,我会使用 @override 来显式地进行子类化。
当我在 Jruby 中覆盖它时,我想要这样的东西:
现在,是否有任何等效的技术来实现安全覆盖?由于仅依赖方法命名,它似乎可以避免 java 集成中一些难以跟踪的错误。
(实际上我发现它通常在 Ruby 中也很方便,只是程度较小..)
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?
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 方法。
java - 在 JRuby 中导入 java 类
我正在尝试在 Jruby 中导入 Java 类
我在这里做错了什么?
jruby - 在文件中搜索模式并在 jruby 中打印
我有一个包含 n 行的文件。我需要在其中搜索一个字段(SessionId 及其值)并打印其相应的值。
我已经编码以访问文件并逐行打印。在获取字段并打印其值时需要帮助。
文件示例行:
注意:该文件在指定字段的上方和下方有很多行
代码:
请帮助我添加到此代码中的内容?
java - ruby 脚本中 exec 的相同进程 ID
有没有人知道 JRuby 实现 exec 的实现。
我有两个简单的 rubys 脚本:Test.rb 通过 exec 调用另一个名为.rb,如下所示:
执行完./test.rb后,我在执行Test.rb的过程中对java进程进行了ps,并调用了.rb。结果是:
我的理解是 exec 应该调用另一个 Jruby 进程,但我没有看到它。有谁知道原因吗?
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
我的最后一次尝试