2016-06-23 24 views
0

Ich versuche, Scala-Code auf Jruby zu verwenden. Das ist mein Scala-Code.Wie kann ich Scala Liste auf Jruby verwenden?

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) 
    } 

} 

Und das ist mein Ruby-Code.

require "java" 
require "/usr/share/scala/lib/scala-library.jar" 

puts Java::test.JRuby.mystring 

Wenn ich versuche, meinen Ruby-Code mit "jruby test.rb" laufen zu lassen, gibt es Fehler "Nicht behandelte Java-Ausnahme: java.lang.NoClassDefFoundError: scala/Sammlung/unveränderlich/List"

Es funktioniert gut mit classpath (jruby -J-cp /usr/share/scala/lib/scala-library.jar test.rb), aber ich bin neugierig, ob ich diesen Code ohne Klassenpfad verwenden kann oder nicht.

Gibt es einen Weg?

Ich bin auf Fedora 23 mit Scala 2.10.4, JRuby 9.1.2.0 und OpenJDK 1.8.0_92

------- ------- Gelöst Arbeit korrekt mit sbt Versammlung Plugin

Antwort

0

wenn es nicht funktioniert als wahrscheinlich nicht. scheint, dass Scala nicht gerne auf JRubys Klassenpfad gesetzt wird.

die require .jar nicht anhängen nur CP sichtbar von JRuby

+1

ich gemacht Glas mit sbt Montage und arbeitet jetzt gut. –