Подтвердить что ты не робот

Включить файл jar в интерпретаторе Scala

Можно ли включить запуск jar файла с помощью интерпретатора Scala?

Мой код работает, когда я компилирую из scalac:

scalac script.scala -classpath *.jar

Но я хотел бы иметь возможность включить файл jar при запуске интерпретатора.

4b9b3361

Ответ 1

Согласно scala исполняемой справке разрешены все параметры scalac, поэтому вы можете запустить scala -classpath some.jar, я только что попробовал, и похоже, что он работает

Ответ 2

В scala2.8 вы можете использовать

scala>:jar JarName.jar

чтобы добавить банку к пути к классам.

В Scala 2.8.1 это не: jar, но: cp

И в Scala 2.11.7 это не так: cp но: re (quire)

Ответ 3

Включить несколько банок int Scala REPL 2.10.0-RC2

scala -classpath my_1st.jar:my_2nd.jar:my_3rd.jar

Ответ 4

в моем случае я использую Scala code runner version 2.9.2. и мне пришлось добавить кавычки. Я использую эти файлы jar:

jdom-b10.jar, rome-0.9.jar

и все в порядке:

scala -classpath "*.jar" feedparser.scala

Ответ 5

В Scala версия 2.11.6 из Scala Использовать REPL :require, лучше всего выяснить с помощью :help из REPL

Например:

$ scala
Welcome to Scala version 2.11.6 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_45).
Type in expressions to have them evaluated.
Type :help for more information.
scala> :require lift-json_2.11-3.0-M5-1.jar
Added '<path to lift json library>/lift-json/lift-json_2.11-3.0-M5-1.jar' to classpath.

Ответ 6

Scala версия 2.11.5:

Вот пример добавления всех банок в кэш плюща:

scala -cp /Users/dbysani/.ivy2/cache/org.apache.spark/spark-streaming_2.10/jars/*

scala> import org.apache.spark.streaming.StreamingContext
import org.apache.spark.streaming.StreamingContext

Вы также можете создать локальную папку всех баннеров, которые вам нужно добавить, и добавить ее аналогичным образом.

Надеюсь, это поможет.

Ответ 7

"lib/*. jar" генерирует список с пустыми значениями между элементами, а не ":" или ";" как требуется. Поскольку Java 6 "lib/*" должна работать, но иногда нет (путь к классам установлен где-то еще)

Я использую скрипт как:

  1. Окна:

    @rem all *.jars in lib subdirectory
    
    @echo off
    
    set clp=.
    for %%c in (lib\*.jar) do call :Setclasspath %%c
    
    echo The classpath is %clp% 
    
    scala -classpath %clp% script.scala
    
    exit /B %ERRORLEVEL%
    
    :Setclasspath
    set clp=%clp%;%~1
    exit /B 0
    
  2. Linux:

    #!/bin/bash
    
    #all *.jars in lib subdirectory
    
    clp="."
    
    for file in lib/*
    do
      clp="$clp:$file"
    done
    
    echo $clp
    
    
    scala -classpath $clp script.scala