繁体   English   中英

在Scala解释器中包含jar文件

[英]Include jar file in Scala interpreter

是否可以包含运行Scala解释器的jar文件?

当我从scalac编译时,我的代码正在工作:

scalac script.scala -classpath *.jar

但我希望能够在运行解释器时包含一个jar文件。

在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版本2.11.6中来自scala REPL使用:require ,最好通过使用:help 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:

以下是在常春藤缓存中添加所有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 / *”应该可以工作,但有时候不行(classpath设置在其他地方)

我用的脚本如下:

  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 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM