在 Scala 解释器中包含 jar 文件

发布于 2024-08-10 04:28:54 字数 166 浏览 4 评论 0原文

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

当我从 scalac 编译时,我的代码可以正常工作:

scalac script.scala -classpath *.jar

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

Is it possible to include a jar file run running the Scala interpreter?

My code is working when I compile from scalac:

scalac script.scala -classpath *.jar

But I would like to be able to include a jar file when running the interpreter.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

a√萤火虫的光℡ 2024-08-17 04:28:54

在scala2.8中,您可以使用

scala>:jar JarName.jar

将jar添加到类路径中。

在 Scala 2.8.1 中,它不是 :jar 而是 :cp

在 Scala 2.11.7 中它不是 :cp 而是 :re(quire)

In scala2.8,you can use

scala>:jar JarName.jar

to add a jar to the classpath.

In Scala 2.8.1, it is not :jar but :cp

And in Scala 2.11.7 it is not :cp but :re(quire)

暗喜 2024-08-17 04:28:54

根据 scala 可执行文件帮助,允许 scalac 的所有选项,
所以你可以运行 scala -classpath some.jar ,我刚刚尝试过,看起来它可以工作

According to scala executable help all options of scalac are allowed ,
so you can run scala -classpath some.jar, i've just tried and it looks like it works

如日中天 2024-08-17 04:28:54

在 Scala REPL 2.10.0-RC2 中包含多个 jar

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

Include multiple jars int Scala REPL 2.10.0-RC2

scala -classpath my_1st.jar:my_2nd.jar:my_3rd.jar
轻拂→两袖风尘 2024-08-17 04:28:54

就我而言,我使用的是 Scala 代码运行器版本 2.9.2。我不得不添加引号。
我正在使用这个 jar 文件:

jdom-b10.jar、rome-0.9.jar

,一切顺利:

scala -classpath "*.jar" feedparser.scala

in my case i am using Scala code runner version 2.9.2. and i had to add quotation marks.
I am using this jar files:

jdom-b10.jar, rome-0.9.jar

and everything goes fine with this:

scala -classpath "*.jar" feedparser.scala
梦巷 2024-08-17 04:28:54

在 Scala 版本 2.11.6 中,scala REPL 使用 :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.

In Scala version 2.11.6 from scala REPL use :require, can best be figured out by using :help from REPL

For example:

$ 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.
剪不断理还乱 2024-08-17 04:28:54

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 的本地文件夹,并以类似的方式添加它。

希望这有帮助。

Scala version 2.11.5:

Here is an example of adding all jars in your ivy cache:

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

You can also create a local folder of all the jars that you need to get added and add it in a similar way.

Hope this helps.

染火枫林 2024-08-17 04:28:54

“lib/*.jar”生成一个列表,项目之间有空格,而不是“:”或“;”根据需要。
由于 Java 6“lib/*”应该可以工作,但有时不能(类路径设置在其他地方),

我使用如下脚本:

  1. Windows:

    @rem lib 子目录中的所有 *.jar
    
    @回声关闭
    
    设置clp=.
    
    对于 (lib\*.jar) 中的 %%c 请调用:Setclasspath %%c
    
    echo 类路径是 %clp% 
    
    scala -classpath %clp% script.scala
    
    退出 /B%ERRORLEVEL%
    
    :设置类路径
    设置clp=%clp%;%~1
    退出 /B 0
    
  2. Linux:

    <前><代码>#!/bin/bash

    #lib 子目录中的所有 *.jar

    clp=“。”

    对于 lib/* 中的文件

    clp="$clp:$文件"
    完毕

    回声$clp

    scala -classpath $clp script.scala
    Linux

"lib/*.jar" generates a list with blank between items not ":" or ";" as required.
Since Java 6 "lib/*" should work, but sometimes doesn't (classpath is set somewhere else)

I use a script like:

  1. Windows:

    @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
    
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文