【问题标题】:JRuby on Rails: Adding a folder to the classpathJRuby on Rails:将文件夹添加到类路径
【发布时间】:2010-07-06 23:13:22
【问题描述】:

我正在尝试将整个文件夹添加到我的 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 类路径的正确方法是什么?

【问题讨论】:

    标签: ruby-on-rails classpath jruby jrubyonrails


    【解决方案1】:

    首先需要java。这就是 $CLASSPATH 变量存在的原因。

    include Java
    $CLASSPATH << "your/folder"
    

    在 1.0 之前的 JRuby 版本中,您可以改为使用 require 'java',但在现代 JRuby 中,这种方式静默不起作用。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-22
    • 1970-01-01
    • 1970-01-01
    • 2012-01-29
    • 1970-01-01
    • 2012-12-07
    • 1970-01-01
    • 2021-07-24
    相关资源
    最近更新 更多