17

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

$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_ROOTcalled下添加一个文件夹resources/foobar,因此我将以下内容添加到environment.rb

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

同样的错误。

使用 Rails 将文件夹添加到 JRuby 类路径的正确方法是什么?

4

1 回答 1

28

首先需要java。这就是使 $CLASSPATH 变量生效的原因。

include Java
$CLASSPATH << "your/folder"

在 JRuby 的 1.0 之前的版本中,您可以这样做require 'java',但在现代 JRuby 中,这静默地不起作用。

于 2010-07-07T04:27:37.023 回答