如果你遵循Dotty或Scala Lang等官方Scala3网站上的步骤,那么它建议使用Coursier安装Scala3。问题是这两个网站都没有解释如何在遵循这些步骤后运行编译后的Scala3应用程序。
Scala 2:
> cs install scala
> scalac HelloScala2.scala
> scala HelloScala2
Hello, Scala 2!Scala 3:
> cs install scala3-compiler
> scala3-compiler HelloScala3.scala现在,如何使用Scala3运行编译后的应用程序?
发布于 2021-06-23 18:44:10
目前似乎还没有一种方法可以使用coursier为Scala3启动一个runner,参见this issue。作为一种解决方法,您可以从github release page安装二进制文件。向下滚动所有经过的贡献列表,以查看.zip文件,并将其下载并解压缩到某个本地文件夹。然后将解压后的bin目录放到您的path中。重启后,您将在终端中获得scala命令(和scalac等)。
另一种解决方法是通过以下命令直接在coursier中使用带有类路径的java运行器:
java -cp $(cs fetch -p org.scala-lang:scala3-library_3:3.0.0):. myMain将myMain替换为@main def函数的名称。如果它在包myPack中,您需要说myPack.myMain (像往常一样)。
发布于 2021-09-25 12:44:22
最后,似乎可以在Coursier中使用scala3来运行scala应用程序,如scala 2版本:
cs install scala3然后,您可以使用scala3-compiler编译它并使用scala3运行
scala3-compiler Main.scala
scala3 Main.scala发布于 2021-09-20 16:04:18
这个变通方法似乎适用于我:
cs launch scala3-repl:3+ -M dotty.tools.MainGenericRunner -- YourScala3File.scala这样,您甚至不必首先编译源代码。
如果您的源代码依赖于第三方库,您可以像这样指定依赖关系:
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子命令指定多个第三方库。
https://stackoverflow.com/questions/68041159
复制相似问题