我正在尝试通过最新稳定的mahout发行版中的以下三个jar文件来使用jruby中的mahout。
- mahout-core-0.9.jar
- mahout-integration-0.9.jar
- Mahout-Math-0.9.9.jar
我试图使用工作正常的一些课程,但有些尤其没有加载。相反,我得到这样的例外:
NameError: missing class or uppercase package name (`org.apache.mahout.cf.taste.impl.recommender.GenericBooleanPrefUserBasedRecommender')
get_proxy_or_package_under_package at org/jruby/javasupport/JavaUtilities.java:54
method_missing at file:/Users/bloudermilk/.rbenv/versions/jruby-1.7.10/lib/jruby.jar!/jruby/java/java_package_module_template.rb:14
(root) at _test.rb:9
我敢肯定,该类存在于文档中所述。实际上,我还可以解压缩mahout-core
JAR,并在其中查看相应的.class
文件。
我在此处上传了一个测试库:https://gist.github.com/bloudermilk/8832036
我没有Java的任何经验,所以我似乎缺少明显的东西。为什么Jruby无法找到这堂课?我该如何解决这个问题?
当我尝试此操作时,我会有一个错误:
Java::OrgApacheMahoutCfTasteImplRecommender::GenericBooleanPrefUserBasedRecommender
NameError: cannot link Java class org.apache.mahout.cf.taste.impl.recommender.GenericBooleanPrefUserBasedRecommender, probable missing dependency:
我的猜测是您的类路径上没有东西。我采用了"大锤子"方法,以使所有内容都能使其上班并能够工作:
Dir['./mahout/*jar'].each {|f| require f}
Dir['./mahout/lib/*jar'].each {|f| require f}
Java::OrgApacheMahoutCfTasteImplRecommender::GenericBooleanPrefUserBasedRecommender