【发布时间】:2010-12-15 00:20:23
【问题描述】:
是否可以包含运行 Scala 解释器的 jar 文件?
当我从 scalac 编译时,我的代码正在运行:
scalac script.scala -classpath *.jar
但我希望能够在运行解释器时包含一个 jar 文件。
【问题讨论】:
标签: scala jar interpreter
是否可以包含运行 Scala 解释器的 jar 文件?
当我从 scalac 编译时,我的代码正在运行:
scalac script.scala -classpath *.jar
但我希望能够在运行解释器时包含一个 jar 文件。
【问题讨论】:
标签: scala jar interpreter
在scala2.8中,可以使用
scala>:jar JarName.jar
将 jar 添加到类路径。
在 Scala 2.8.1 中,它不是 :jar 而是 :cp
在 Scala 2.11.7 中,它不是 :cp 而是 :re(quire)
【讨论】:
根据 scala 可执行帮助,scalac 的所有选项都是允许的,
所以你可以运行scala -classpath some.jar,我刚刚尝试过,它看起来可以工作
【讨论】:
在 Scala REPL 2.10.0-RC2 中包含多个 jar
scala -classpath my_1st.jar:my_2nd.jar:my_3rd.jar
【讨论】:
就我而言,我使用的是 Scala 代码运行器版本 2.9.2。我不得不添加引号。 我正在使用这个 jar 文件:
jdom-b10.jar, rome-0.9.jar
一切顺利:
scala -classpath "*.jar" feedparser.scala
【讨论】:
在来自 scala REPL 的 Scala 版本 2.11.6 中使用 :require,最好使用来自 REPL 的 :help 来计算
例如:
$ 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:
以下是在 ivy 缓存中添加所有 jar 的示例:
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
您还可以为需要添加的所有 jar 创建一个本地文件夹,并以类似的方式添加它。
希望这会有所帮助。
【讨论】:
"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
【讨论】: