我试图在Jruby上使用scala代码。这是我的scala代码。
package test
object JRuby {
def mystring: String = "This is String"
def countChange(money: Int, coins: List[Int]): Int = {
def count(m: Int, c: List[Int]): Int = {
if (c.isEmpty) 0
else if (m - c.head == 0) 1
else if (m - c.head < 0) 0
else countChange(m - c.head, c) + countChange(m, c.tail)
}
count(money, coins)
}
}
这是我的红宝石代码。
require "java"
require "/usr/share/scala/lib/scala-library.jar"
puts Java::test.JRuby.mystring
当我尝试使用&#34; jruby test.rb&#34;运行我的ruby代码时,它返回错误&#34;未处理的Java异常:java.lang.NoClassDefFoundError:scala / collection / immutable / List&#34 ;
它适用于classpath(jruby -J-cp /usr/share/scala/lib/scala-library.jar test.rb),但我很好奇是否可以在没有classpath的情况下使用此代码。
有什么办法吗?
我在Fedora 23上使用Scala 2.10.4,JRuby 9.1.2.0和openjdk 1.8.0_92
------- -------解决 与sbt的程序集插件一起正常工作
答案 0 :(得分:0)
如果它不起作用,可能不会。 似乎Scala不喜欢被放在JRuby的类路径上。
require .jar
仅附加到JRuby可见的CP