从 JRuby 中的 jar 文件导入 类 与顶级核心模块冲突

Imported classes from a jar file in JRuby conflict with top level core module

我有一个 JRuby 项目需要第三方 .jar 文件,其中包含我需要使用的几个 Java 类。我 运行 遇到一个问题,其中一个 类 被命名为 Process,它与顶层 Ruby Process 模块冲突。

我已经构建了一个 github 存储库,其中包含说明问题的最小概念证明:https://github.com/douglasmiller/process_test

有没有其他人遇到过类似的问题?我该怎么做才能解决这个问题?

类似于您在 Ruby 中解决此问题的方法 - 在模块(使用它的地方)下导入它或根本不导入它。

  1. 不用java_import org.process_test.Process直接用org.process_test.Process::PROCESS_CONSTANT

  2. 如果你真的想只导入不会冲突的地方:

module MyApp java_import org.process_test.Process # MyApp::Process != ::Process class ProcessStuff def initialize; puts Process::PROCESS_CONSTANT end end end