Rails Jruby LoadError: no such file to load , when using Java Class in config.after_initialize

Rails Jruby LoadError: no such file to load , when using Java Class in config.after_initialize

我正在使用 jruby,我需要在初始化某些内容后启动一些 java 代码。下面是我需要在 application.rb 中启动的代码。我导入了正确的 classes 和库。

config.after_initialize do
  ihp = IPHistoryProcessor.new("/home/ubuntu/jruby/logs/inputFiles/")
end

但是我得到以下错误

LoadError: no such file to load -- /home/ubuntu/jruby/jruby_try_4/config/environment 
require at org/jruby/RubyKernel.java:940
block in require at /home/ubuntu/.rvm/gems/jruby-9.0.0.0/gems/activesupport-4.1.12/lib/active_support/dependencies.rb:247
........

我可以调用另一个内置的 ruby classes 但不能调用我制作的这个 java class。我不知道问题可能从哪里开始。我看到的其他帖子中的大多数迹象都表明这是一个乘客问题,但我正在使用 Puma 作为服务器。解决此问题的任何帮助将不胜感激。谢谢!

您需要告诉 JRuby 在哪里寻找您的 Java .class ... 否则它对 Rails 一无所知(没有自动加载的约定。class 来自 lib 等位置的文件 ... 尝试:

$CLASSPATH << 'lib/java' # set this early e.g. in boot.rb

或者 IPHistoryProcessor.class 所在的任何地方(包括 pkg 目录结构)