Scala - REPL-Umgebung initialisieren

-Hallo. Ich möchte Scala REPL mit einbindeninitialisierte Umgebung in meine App. Ich habe angeschautIMain Klasse und es scheint, ich könnte es über Instanz davon tun. Die Instanz wird erstellt und dann in gespeichertintp öffentliche var inprocess() vonILoop.

Wie kann ich vorher einige Namen binden und / oder einige Importe hinzufügen?process() (z. B. vor REPL)?

Der folgende Code schlägt in Zeile 3 fehl, weilintp ist noch nicht angelegt (=> NPE):

    val x = 3
    val interp = new ILoop
    interp.bind("x", x) // -> interp.intp.bind("x", x)
    val settings = new Settings
    settings.usejavacp.value = true
    interp.process(settings)

Vielen Dank-.

UPDATE: ÜberschreibencreateInterpreter() funktioniert leider nicht:

    val x = 3
    val interp = new ILoop {
        override def createInterpreter() {
            super.createInterpreter()
            intp.bind("x", x) // -> interp.intp.bind("x", x)
        }
    }
    val settings = new Settings
    settings.usejavacp.value = true
    interp.process(settings)

Der Interpreter bleibt bei der Eingabe hängen (sieht aus wie ein Deadlock, passiert nur mit dem obigen Code):

x: Int = 3
Failed to created JLineReader: java.lang.NoClassDefFoundError: scala/tools/jline/console/completer/Completer
Falling back to SimpleReader.
Welcome to Scala version 2.9.2 (OpenJDK 64-Bit Server VM, Java 1.7.0_06-icedtea).
Type in expressions to have them evaluated.
Type :help for more information.

scala> println
<infinite_sleep>

Danke dvigal für den Vorschlag.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage