【问题标题】:(LoadError) no such file to load -- jruby/java(LoadError) 没有要加载的文件 -- jruby/java
【发布时间】:2013-12-09 19:55:50
【问题描述】:

我正在尝试创建一个将使用 JRuby 编译 SASS 文件的 ant 任务。我遇到的问题是每次调用 JRuby 时都会出现错误:

build.xml:56: org.jruby.exceptions.RaiseException: (LoadError) no such file to load -- jruby/java

我的项目正在使用 jruby-complete-1.7.9.jar。我的系统上没有安装 Ruby,因为据我了解,我需要的一切都应该在 JRuby jar 中。我也没有设置任何环境变量(例如 JRUBY_HOME)。以下是调用失败的 JRuby 的代码:

ScriptingContainer container = new ScriptingContainer();
container.runScriptlet("require 'rubygems'");

谁能告诉我我做错了什么?

【问题讨论】:

    标签: ruby gem jruby


    【解决方案1】:

    你是……

    import org.jruby.embed.InvokeFailedException;
    import org.jruby.embed.ScriptingContainer;
    

    【讨论】:

    • 是的,我是。我的 ant 任务编译得很好,但是当我运行它时总是会产生 JRuby 异常。 JRuby jar 肯定包含必要的文件,但看起来 ScriptingContainer 的类路径可能配置不正确,找不到它们?
    【解决方案2】:

    所以,我已经解决了我的问题。原来脚本容器需要明确设置其类加载器:

    container.setClassLoader(container.getClass().getClassLoader());
    

    我不确定为什么默认的类加载器不是它自己的。但我已经取得了一些进展。现在我正面临下一个我应该能够快速解决的障碍:

    (LoadError) no such file to load -- compass
    

    【讨论】:

    猜你喜欢
    • 2014-01-16
    • 2011-02-23
    • 2013-12-14
    • 2011-12-19
    • 1970-01-01
    • 2011-11-30
    • 2016-05-09
    • 2023-03-03
    相关资源
    最近更新 更多