Можно ли включить запуск jar файла с помощью интерпретатора Scala?
Мой код работает, когда я компилирую из scalac:
scalac script.scala -classpath *.jar
Но я хотел бы иметь возможность включить файл jar при запуске интерпретатора.
Можно ли включить запуск jar файла с помощью интерпретатора Scala?
Мой код работает, когда я компилирую из scalac:
scalac script.scala -classpath *.jar
Но я хотел бы иметь возможность включить файл jar при запуске интерпретатора.
Согласно scala исполняемой справке разрешены все параметры scalac,
поэтому вы можете запустить scala -classpath some.jar
, я только что попробовал, и похоже, что он работает
В scala2.8 вы можете использовать
scala>:jar JarName.jar
чтобы добавить банку к пути к классам.
В Scala 2.8.1 это не: jar, но: cp
И в Scala 2.11.7 это не так: cp но: re (quire)
Включить несколько банок int Scala REPL 2.10.0-RC2
scala -classpath my_1st.jar:my_2nd.jar:my_3rd.jar
в моем случае я использую Scala code runner version 2.9.2. и мне пришлось добавить кавычки. Я использую эти файлы jar:
jdom-b10.jar, rome-0.9.jar
и все в порядке:
scala -classpath "*.jar" feedparser.scala
В 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.
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
Вы также можете создать локальную папку всех баннеров, которые вам нужно добавить, и добавить ее аналогичным образом.
Надеюсь, это поможет.
"lib/*. jar" генерирует список с пустыми значениями между элементами, а не ":" или ";" как требуется. Поскольку Java 6 "lib/*" должна работать, но иногда нет (путь к классам установлен где-то еще)
Я использую скрипт как:
Окна:
@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
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