(LoadError)没有要加载的文件——jruby/java

(LoadError)没有要加载的文件——jruby/java,ruby,gem,jruby,Ruby,Gem,Jruby,我正在尝试创建一个ant任务,它将使用JRuby编译SASS文件。我遇到的问题是,每次调用JRuby时,都会出现以下错误: build.xml:56: org.jruby.exceptions.RaiseException: (LoadError) no such file to load -- jruby/java 我的项目正在使用jruby-complete-1.7.9.jar。我没有在我的系统上安装Ruby,因为据我所知,我需要的所有东西都应该在JRubyJAR中。我也没有设置任何环境变

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

build.xml:56: org.jruby.exceptions.RaiseException: (LoadError) no such file to load -- jruby/java
我的项目正在使用jruby-complete-1.7.9.jar。我没有在我的系统上安装Ruby,因为据我所知,我需要的所有东西都应该在JRubyJAR中。我也没有设置任何环境变量(例如JRUBY_HOME)。下面是调用失败的JRuby的代码:

ScriptingContainer container = new ScriptingContainer();
container.runScriptlet("require 'rubygems'");
谁能告诉我我做错了什么吗?

你是

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

所以,我解决了我的问题。脚本容器需要显式设置其类加载器:

container.setClassLoader(container.getClass().getClassLoader());
我不确定为什么默认的类装入器不是它自己的。但我已经取得了一些进展。现在我遇到了下一个障碍,我应该能够很快解决:

(LoadError) no such file to load -- compass

是的,我是。我的ant任务编译得很好,但在运行它时总是产生JRuby异常。JRuby jar肯定包含必要的文件,但看起来ScriptingContainer的类路径可能配置不正确,无法找到它们?看起来您也可以使用container.setLoadPath