首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Coursier在命令行中运行Scala3应用程序

如何使用Coursier在命令行中运行Scala3应用程序
EN

Stack Overflow用户
提问于 2021-06-19 04:34:04
回答 3查看 418关注 0票数 5

如果你遵循DottyScala Lang等官方Scala3网站上的步骤,那么它建议使用Coursier安装Scala3。问题是这两个网站都没有解释如何在遵循这些步骤后运行编译后的Scala3应用程序。

Scala 2:

代码语言:javascript
复制
> cs install scala
> scalac HelloScala2.scala
> scala HelloScala2
Hello, Scala 2!

Scala 3:

代码语言:javascript
复制
> cs install scala3-compiler
> scala3-compiler HelloScala3.scala

现在,如何使用Scala3运行编译后的应用程序?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-06-23 18:44:10

目前似乎还没有一种方法可以使用coursier为Scala3启动一个runner,参见this issue。作为一种解决方法,您可以从github release page安装二进制文件。向下滚动所有经过的贡献列表,以查看.zip文件,并将其下载并解压缩到某个本地文件夹。然后将解压后的bin目录放到您的path中。重启后,您将在终端中获得scala命令(和scalac等)。

另一种解决方法是通过以下命令直接在coursier中使用带有类路径的java运行器:

代码语言:javascript
复制
java -cp $(cs fetch -p org.scala-lang:scala3-library_3:3.0.0):. myMain

myMain替换为@main def函数的名称。如果它在包myPack中,您需要说myPack.myMain (像往常一样)。

票数 4
EN

Stack Overflow用户

发布于 2021-09-25 12:44:22

最后,似乎可以在Coursier中使用scala3来运行scala应用程序,如scala 2版本:

代码语言:javascript
复制
cs install scala3

然后,您可以使用scala3-compiler编译它并使用scala3运行

代码语言:javascript
复制
scala3-compiler Main.scala
scala3 Main.scala
票数 2
EN

Stack Overflow用户

发布于 2021-09-20 16:04:18

这个变通方法似乎适用于我:

代码语言:javascript
复制
cs launch scala3-repl:3+ -M dotty.tools.MainGenericRunner -- YourScala3File.scala

这样,您甚至不必首先编译源代码。

如果您的源代码依赖于第三方库,您可以像这样指定依赖关系:

代码语言:javascript
复制
cs launch scala3-repl:3+ -M dotty.tools.MainGenericRunner -- -classpath \
    $(cs fetch --classpath io.circe:circe-generic_3:0.14.1):. \
    YourScala3File.scala

这将是一个使用Scala3编译的circe库的示例,您应该能够使用fetch子命令指定多个第三方库。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68041159

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档