Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to run Scala 3 applications in the command line with Coursier

If you follow the steps at the official Scala 3 sites, like Dotty or Scala Lang then it recommends using Coursier to install Scala 3. The problem is that neither or these explain how to run a compiled Scala 3 application after following the steps.

Scala 2:

> cs install scala
> scalac HelloScala2.scala
> scala HelloScala2
Hello, Scala 2!

Scala 3:

> cs install scala3-compiler
> scala3-compiler HelloScala3.scala

Now how do you run the compiled application with Scala 3?

like image 215
Jack Avatar asked Jun 18 '21 20:06

Jack


People also ask

How do I run a Scala command line?

To run Scala from the command-line, download the binaries and unpack the archive. Start the Scala interpreter (aka the “REPL”) by launching scala from where it was unarchived. Start the Scala compiler by launching scalac from where it was unarchived.

What is Scala coursier?

What Is Coursier? Coursier is an artifact fetching tool written in Scala. Coursier has been used by SBT for fetching the library dependencies since 1.3. 0. It supports the parallel downloading of artifacts without any global lock.


1 Answers

Currently there does not seem to be a way to launch a runner for Scala 3 using coursier, see this issue. As a workaround, you can install the binaries from the github release page. Scroll all the way down passed the contribution list to see the .zip file and download and unpack it to some local folder. Then put the unpacked bin directory on your path. After a restart you will get the scala command (and scalac etc) in terminal.

Another workaround is using the java runner directly with a classpath from coursier by this command:

java -cp $(cs fetch -p org.scala-lang:scala3-library_3:3.0.0):. myMain

Replace myMain with the name of your @main def function. If it is in a package myPack you need to say myPack.myMain (as usual).

like image 134
Bjorn Regnell Avatar answered Sep 21 '22 16:09

Bjorn Regnell