JRuby on Rails:将文件夹添加到类路径

17

我试图将一个完整的文件夹添加到我的Rails应用程序的JRuby 1.5类路径中。 JRuby Wiki 建议如下: "...在config/environment.rb中将配置目录添加到JRuby类路径中:"

$CLASSPATH << "file:///#{File.expand_path(File.join(RAILS_ROOT, 'config'))}/"

对我似乎不起作用。无论我把它放在Rails::Initializer.run块的前面、后面还是里面都没关系。无论如何,我都会得到:

/home/sean/src/sbruby/seo/config/environment.rb:45:NoMethodError: undefined method `<<' for nil:NilClass
/home/sean/apps/jruby/jruby-1.5.0/lib/ruby/gems/1.8/gems/rails-2.3.7/lib/rails/backtrace_cleaner.rb:2:NameError: uninitialized constant ActiveSupport::BacktraceCleaner
/home/sean/apps/jruby/jruby-1.5.0/lib/ruby/gems/1.8/gems/rails-2.3.7/lib/console_with_helpers.rb:5:NameError: uninitialized constant ApplicationController
例如,我想在RAILS_ROOT下添加一个名为resources/foobar的文件夹,因此我在environment.rb中添加了以下内容:
$CLASSPATH << "file:///#{File.expand_path(File.join(RAILS_ROOT, "resources", "foobar"))}/"

同样的错误。

在Rails中,如何正确地将一个文件夹添加到JRuby类路径中?

1个回答

28

首先需要安装Java。这是使$CLASSPATH变量生效的关键。

include Java
$CLASSPATH << "your/folder"

在JRuby的1.0版本之前,您需要执行require 'java',但在现代JRuby中,这样做是不起作用的。


太棒了,这就是我所缺少的! - organicveggie
我也更新了JRuby维基,以反映该要求。再次感谢。 - organicveggie
2
尽管现在更多的是使用"include Java"而不是"require 'java'"(https://blogs.oracle.com/coolstuff/entry/using_java_classes_in_jruby)。 - ottobar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接