1<!DOCTYPE html> 2<html> 3 <head> 4 <meta charset="UTF-8"> 5 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 6 7 <title>Install | The Scala Programming Language</title> 8 9 <meta property="og:title" content="Install"/> 10 11 12 <meta name="twitter:card" content="summary"/> 13 <meta name="twitter:site" content="@scala_lang"/> 14 <meta name="twitter:creator" content="@scala_lang"/> 15 16 <meta property="og:url" content="https://www.scala-lang.org/download/"/> 17 18 <meta property="og:image" content="https://www.scala-lang.org/resources/img/scala-spiral-3d-2-toned-down.png"/> 19 20 <meta name="viewport" content="width=device-width, initial-scale=1"/> 21 22 <link rel="icon" type="image/png" href="/resources/favicon.ico"> 23 <link rel="shortcut icon" type="image/png" href="/resources/favicon.ico"> 24 <link rel="apple-touch-icon" sizes="180x180" href="/resources/apple-touch-icon.png"> 25 <link rel="icon" type="image/png" sizes="32x32" href="/resources/favicon-32x32.png"> 26 <link rel="icon" type="image/png" sizes="16x16" href="/resources/favicon-16x16.png"> 27 <link rel="manifest" href="/resources/site.webmanifest"> 28 <link rel="mask-icon" href="/resources/safari-pinned-tab.svg" color="#5bbad5"> 29 <meta name="msapplication-TileColor" content="#15a9ce"> 30 <meta name="theme-color" content="#ffffff"> 31 32 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css" 33 integrity="sha512-SnH5WK+bZxgPHs44uWIX+LLJAJ9/2PkPKZ5QiAj6Ta86w+fsb2TkcmfRyVX3pBnMFcV7oQPJkl9QevSCWr3W6A==" 34 crossorigin="anonymous" referrerpolicy="no-referrer"> 35 36 <!-- Custom stylesheet --> 37 <link href="/resources/css/unslider-dots.css" rel="stylesheet" type="text/css"> 38 <link href="/resources/css/unslider.css" rel="stylesheet" type="text/css"> 39 40 <link rel="stylesheet" href="/resources/css/highlightjs.css" type="text/css" /> 41 42 <link rel="stylesheet" href="/resources/css/style.css?v=20261001024508" type="text/css" /> 43 <link rel="stylesheet" href="/resources/css/vendor/codemirror.css" type="text/css" /> 44 <link rel="stylesheet" href="/resources/css/vendor/monokai.css" type="text/css" /> 45 <link rel="stylesheet" href="/resources/css/monospace.css" type="text/css" /> 46 47 <!-- Typekit (should stay at top of page, do not move to footer)--> 48 <!--
48<script type="text/javascript" src="//use.typekit.net/abh3wgk.js"></script>
48 49
49<script type="text/javascript">try{Typekit.load();}catch(e){}</script>
49 --> 50 51 <!-- Atom feeds --> 52 <link rel="alternate" type="application/atom+xml" title="Feed" href="/feed/index.xml" /> 53 54 55 56 57 </head> 58 <body> 59 60<div class="navigation-fade-screen"></div> 61 62<header id="site-header"> 63 64 65 66 67 <div class="wrap"> 68 <nav class="navigation" role="menu"> 69 <a href="/" class="navigation-band"> 70 <img src="/resources/img/frontpage/[email protected]" alt=""> 71 </a> 72 <div class="navigation-panel-button"> 73 <i class="fa fa-bars"></i> 74 </div> 75 <ul class="navigation-menu"> 76 77 <li class="navigation-menu-item"> 78 <a href="https://docs.scala-lang.org" >Learn</a> 79 </li> 80 81 <li class="navigation-menu-item"> 82 <a href="/download/" class="active">Install</a> 83 </li> 84 85 <li class="navigation-menu-item"> 86 <a href="https://scastie.scala-lang.org" >Playground</a> 87 </li> 88 89 <li class="navigation-menu-item"> 90 <a href="https://index.scala-lang.org" >Find a Library</a> 91 </li> 92 93 <li class="navigation-menu-item"> 94 <a href="/community/" >Community</a> 95 </li> 96 97 <li class="navigation-menu-item"> 98 <a href="/governance/" >Governance</a> 99 </li> 100 101 <li class="navigation-menu-item"> 102 <a href="/blog/" >Blog</a> 103 </li> 104 105 </ul> 106 </nav> 107 </div> 108</header> 109 110 111<main id="inner-main" class="download-page select-language"> 112 113<!-- Title --> 114<section class="title-page"> 115 <div class="wrap"> 116 <h1>Install</h1> 117 </div> 118</section> 119 120 121 122 123 124 125 126 127 128<section class="books"> 129 <div class="wrap"> 130 <div class="inner-box download"> 131 <div class="main-download"> 132 <div class="recommended-install"> 133 <h2>Install Scala with <span style="font-weight: bold;">cs setup</span> (recommended)</h2> 134 <div> 135 <div class="text-step"> 136 <p>To install Scala, it is recommended to use <code>cs setup</code>, 137 the Scala installer powered by Coursier. It installs everything necessary to use the latest Scala release from a 138 command line: 139 </p> 140 </div> 141 <div class="place-inline"> 142 <div id="install-cs-setup-tabs" class="tabsection"> 143 144 <input 145 type="radio" 146 name="install-cs-setup-tabs_tabs" 147 id="macos_description" 148 data-target="macos" 149 hidden 150 aria-hidden="true" 151 152 > 153 154 <input 155 type="radio" 156 name="install-cs-setup-tabs_tabs" 157 id="linux_description" 158 data-target="linux" 159 hidden 160 aria-hidden="true" 161 162 > 163 164 <input 165 type="radio" 166 name="install-cs-setup-tabs_tabs" 167 id="windows_description" 168 data-target="windows" 169 hidden 170 aria-hidden="true" 171 172 > 173 174 <input 175 type="radio" 176 name="install-cs-setup-tabs_tabs" 177 id="other_description" 178 data-target="other" 179 hidden 180 aria-hidden="true" 181 checked 182 > 183 184 <ul hidden aria-hidden="true" class="nav-tab"> 185 186 <li class="item-tab"> 187 <label class="item-tab-link" for="macos_description">macOS</label> 188 </li> 189 190 <li class="item-tab"> 191 <label class="item-tab-link" for="linux_description">Linux</label> 192 </li> 193 194 <li class="item-tab"> 195 <label class="item-tab-link" for="windows_description">Windows</label> 196 </li> 197 198 <li class="item-tab"> 199 <label class="item-tab-link" for="other_description">Other</label> 200 </li> 201 202 </ul> 203 <div class="tabcontent"> 204 205 <section id="macos_content"> 206 <div class="text-step wrap-inline"> 207 <div class="wrap"> 208 <p>Run the following command in your terminal, following the on-screen instructions:</p> 209 <div class="code-snippet-area"> 210 211 <div class="code-snippet-buttons"> 212 <button class="code-snippet-button copy-button"><i class="far fa-clone"></i></button> 213 </div> 214 215 <pre class="code-snippet-display"><code class="bash">brew install coursier/formulas/coursier && cs setup</code></pre> 216</div> 217 218 219 220 <div id="cs-setup-macos-nobrew" class="alt-details"> 221 <input class="alt-details-control" type="checkbox" id="cs-setup-macos-nobrew__control" hidden aria-hidden="true"> 222 <label class="alt-details-toggle" for="cs-setup-macos-nobrew__control">Alternatively for Apple Silicon, or if you don't use Homebrew:</label> 223 <div class="alt-details-detail"> 224 225 <div class="wrap-narrow"> 226 <p>On the Apple Silicon (M1, M2, â¦) architecture:</p> 227 <div class="code-snippet-area"> 228 229 <div class="code-snippet-buttons"> 230 <button class="code-snippet-button copy-button"><i class="far fa-clone"></i></button> 231 </div> 232 233 <pre class="code-snippet-display"><code class="bash">curl -fL https://github.com/coursier/coursier/releases/latest/download/cs-aarch64-apple-darwin.gz | gzip -d > cs && chmod +x cs && (xattr -d com.apple.quarantine cs || true) && ./cs setup</code></pre> 234</div> 235 236 <p>Otherwise, on the x86-64 architecture:</p> 237 <div class="code-snippet-area"> 238 239 <div class="code-snippet-buttons"> 240 <button class="code-snippet-button copy-button"><i class="far fa-clone"></i></button> 241 </div> 242 243 <pre class="code-snippet-display"><code class="bash">curl -fL https://github.com/coursier/coursier/releases/latest/download/cs-x86_64-apple-darwin.gz | gzip -d > cs && chmod +x cs && (xattr -d com.apple.quarantine cs || true) && ./cs setup</code></pre> 244</div> 245 246 </div> 247 248 </div> 249</div> 250 251 </div> 252</div> 253 254 </section> 255 256 <section id="linux_content"> 257 <div class="text-step wrap-inline"> 258 <div class="wrap"> 259 <p>Run the following command in your terminal, following the on-screen instructions.
259</p> 260 <p>On the x86-64 architecture:</p> 261 <div class="code-snippet-area"> 262 263 <div class="code-snippet-buttons"> 264 <button class="code-snippet-button copy-button"><i class="far fa-clone"></i></button> 265 </div> 266 267 <pre class="code-snippet-display"><code class="bash">curl -fL https://github.com/coursier/coursier/releases/latest/download/cs-x86_64-pc-linux.gz | gzip -d > cs && chmod +x cs && ./cs setup</code></pre> 268</div> 269 270 <p>Otherwise, on the ARM64 architecture:</p> 271 <div class="code-snippet-area"> 272 273 <div class="code-snippet-buttons"> 274 <button class="code-snippet-button copy-button"><i class="far fa-clone"></i></button> 275 </div> 276 277 <pre class="code-snippet-display"><code class="bash">curl -fL https://github.com/VirtusLab/coursier-m1/releases/latest/download/cs-aarch64-pc-linux.gz | gzip -d > cs && chmod +x cs && ./cs setup</code></pre> 278</div> 279 280 </div> 281</div> 282 283 </section> 284 285 <section id="windows_content"> 286 <div class="text-step wrap-inline"> 287 <div class="wrap"> 288 <p>Download and execute <a href="https://github.com/coursier/coursier/releases/latest/download/cs-x86_64-pc-win32.zip">the Scala 289 installer for Windows</a> based on Coursier, and follow the on-screen instructions.</p> 290 </div> 291</div> 292 293 </section> 294 295 <section id="other_content"> 296 <div class="text-step wrap-inline"> 297 <div class="wrap"> 298 <noscript> 299 <p><span style="font-style:italic;">JavaScript is disabled, click the tab relevant for your OS.</span></p> 300 </noscript> 301 <p>Follow the documentation from Coursier on <a href="https://get-coursier.io/docs/cli-installation" target="_blank">how to install and run <code>cs setup</code></a>.</p> 302 </div> 303</div> 304 305 </section> 306 307 </div> 308</div> 309 310 </div> 311 312 <div class="place-inline"> 313 <div id="testing-your-setup" class="alt-details"> 314 <input class="alt-details-control" type="checkbox" id="testing-your-setup__control" hidden aria-hidden="true"> 315 <label class="alt-details-toggle" for="testing-your-setup__control">Testing your setup</label> 316 <div class="alt-details-detail"> 317 318 <div class="text-step wrap-inline"> 319 <div class="wrap"> 320 <p>Check your setup with the command <code>scala -version</code>, which should output:</p> 321 <div class="code-snippet-area"> 322 323 <pre class="code-snippet-display"><code class="bash">$ scala -version 324Scala code runner version 3.9.0 -- Copyright 2002-2022, LAMP/EPFL</code></pre> 325</div> 326 327 <p>If that does not work, close and reopen your terminal; otherwise, you may need to log out and log back in (or reboot) in order for the changes to take 328 effect. 329 </p> 330 </div> 331 </div> 332 333 </div> 334</div> 335 336 </div> 337 <p>If you are just beginning your journey with Scala, 338 we recommend that you read our getting started guide, which expands upon these details, teaching you how to build 339 your first Scala project:</p> 340 <br /> 341 <a href="https://docs.scala-lang.org/getting-started.html" class="btn-download scala3"> 342 <i class="fa fa-download"></i> 343 <span>Get Started with Scala</span> 344 </a> 345 </div> 346 </div> 347 348 <div id="version-choice"> 349 350 351 352 353 <h2>Which version of Scala should I choose?</h2> 354 <p>There are 2 distribution lines of Scala 3:</p> 355 <ul style="list-style-type: disc; padding: 10px;"> 356 <li><strong>Scala Next</strong> currently 3.9.0 - The <strong>default</strong> to be used by most users, containing the latest features, bug fixes and improvements.</li> 357 <li><strong>Scala LTS</strong> currently 3.9.0 - Advised to be used for publishing <strong>libraries</strong>.</li> 358 </ul> 359 </div> 360 361 362 <h2>Other ways to install Scala</h2> 363 <div class="wrap"> 364 <a href="/download/all.html" class="btn-download dl-find-all"> 365 <i class="fa fa-list-ul"></i>
366 <span>Pick a Specific Release</span> 367 </a> 368 </div> 369 <p>Each Scala release has its own page listing alternative installation methods. Click the button above to 370 see the full list of Scala releases, or pick from the most recent releases below.</p> 371 372 <div class="download-left"> 373 <h3>Current releases</h3><br /> 374 <ul> 375 376 377 <li> 378 <a href="/download/3.9.0.html"> 379 Current 3.9.x release: <b>3.9.0</b><br />Released on September 3, 2026 380 </a> 381 </li> 382 383 384 385 <li> 386 <a href="/download/3.3.8.html"> 387 Current 3.3.x LTS release: <b>3.3.8</b><br />Released on June 10, 2026 388 </a> 389 </li> 390 391 392 393 <li> 394 <a href="/download/3.9.0.html"> 395 Current 3.9.x LTS release: <b>3.9.0</b><br />Released on September 3, 2026 396 </a> 397 </li> 398 399 400 401 <li> 402 <a href="/download/2.13.18.html"> 403 Current 2.13.x release: <b>2.13.18</b><br />Released on November 24, 2025 404 </a> 405 </li> 406 407 408 409 410 411 412 413 414 </ul> 415 </div> 416 <div class="download-right"> 417 <h3>Maintenance releases</h3> 418 <br /> 419 <ul> 420 421 422 423 424 425 426 427 428 429 430 <li> 431 <a href="/download/2.12.21.html"> 432 Latest 2.12.x maintenance release: <b>2.12.21</b><br />Released on December 11, 2025 433 </a> 434 </li> 435 436 437 438 <li> 439 <a href="/download/2.11.12.html"> 440 Last 2.11.x maintenance release: <b>2.11.12</b><br />Released on November 9, 2017 441 </a> 442 </li> 443 444 445 446 <li> 447 <a href="/download/2.10.7.html"> 448 Last 2.10.x maintenance release: <b>2.10.7</b><br />Released on November 9, 2017 449 </a> 450 </li> 451 452 453 </ul> 454 </div> 455 </div> 456 </div> 457 </div> 458</section> 459 460</main> 461 462<footer id="site-footer"> 463 <div class="wrap"> 464 <div class="site-footer-top"> 465 466 <ul class="documentation"> 467 <li><h3>Documentation</h3></li> 468 469 470 <li><a href="https://docs.scala-lang.org/getting-started.html">Getting Started</a></li> 471 472 473 474 <li><a href="https://www.scala-lang.org/api/current/index.html">API</a></li> 475 476 477 478 <li><a href="https://docs.scala-lang.org/overviews">Overviews/Guides</a></li> 479 480 481 482 <li><a href="https://scala-lang.org/files/archive/spec/2.13/">Language Specification</a></li> 483 484 485 </ul> 486 487 <ul class="download"> 488 <li><h3>Download</h3></li> 489 490 491 <li><a href="/download/">Current Version</a></li> 492 493 494 495 <li><a href="/download/all.html">All versions</a></li> 496 497 498 </ul> 499 500 <ul class="community"> 501 <li><h3>Community</h3></li> 502 503 504 <li><a href="/community/">Community</a></li> 505 506 507 508 <li><a href="/ambassadors/">Scala Ambassadors</a></li> 509 510 511 512 <li><a href="/community/index.html#forums">Forums</a></li> 513 514 515 516 <li><a href="/community/index.html#chat-rooms">Chat</a></li> 517 518 519 520 <li><a href="/community/index.html#libraries-and-tools">Libraries and Tools</a></li> 521 522 523 524 <li><a href="https://scala.epfl.ch/">The Scala Center</a></li> 525 526 527 </ul> 528 529 <ul class="contribute"> 530 <li><h3>
530Contribute</h3></li> 531 532 533 <li><a href="/contribute/">How to help</a></li> 534 535 536 537 <li><a href="/contribute/bug-reporting-guide.html">Report an Issue</a></li> 538 539 540 </ul> 541 542 <ul class="scala"> 543 <li><h3>Scala</h3></li> 544 545 546 <li><a href="/governance/">Governance</a></li> 547 548 549 550 <li><a href="/blog/">Blog</a></li> 551 552 553 554 <li><a href="/conduct.html">Code of Conduct</a></li> 555 556 557 558 <li><a href="/license/">License</a></li> 559 560 561 562 <li><a href="/security/">Security Policy</a></li> 563 564 565 </ul> 566 567 <ul class="social"> 568 <li><h3>Social</h3></li> 569 570 571 <li><a href="https://github.com/scala">GitHub</a></li> 572 573 574 575 <!-- special case Mastodon to validate with rel="me" --> 576 <li><a rel="me" href="https://fosstodon.org/@scala_lang">Mastodon</a></li> 577 578 579 580 <li><a href="https://bsky.app/profile/scala-lang.org">Bluesky</a></li> 581 582 583 584 <li><a href="https://x.com/scala_lang">X</a></li> 585 586 587 588 <li><a href="https://discord.com/invite/scala">Discord</a></li> 589 590 591 592 <li><a href="https://www.linkedin.com/company/scala-center/">LinkedIn</a></li> 593 594 595 </ul> 596 597 </div> 598 <div class="site-footer-bottom"> 599 <p>Copyright © 2002-2026 Ãcole Polytechnique Fédérale <br>Lausanne (EPFL) Lausanne, Switzerland</p> 600 <img src="/resources/img/frontpage/scala-logo-white.png" alt=""> 601 </div> 602 </div> 603 </footer> 604 605 <!-- jquery --> 606
606<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
606 607
607<script src="/resources/js/vendor/jquery.autocomplete.js" type="text/javascript" ></script>
607 608 609 <!-- tweet feed --> 610
610<script src="/resources/js/tweetMachine-update.js" type="text/javascript" ></script>
610 611 612 <!-- prettify js --> 613
613<script src="/resources/js/vendor/prettify/prettify.js" type="text/javascript" ></script>
613 614
614<script src="/resources/js/vendor/prettify/lang-scala.js" type="text/javascript" ></script>
614 615 616 <!-- unslider js --> 617
617<script src="/resources/js/vendor/unslider.js" type="text/javascript" ></script>
617 618 619 <!-- Highlight --> 620
620<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/highlight.min.js" type="text/javascript"></script>
620 621
621<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/scala.min.js" type="text/javascript"></script>
621 622
622<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/java.min.js" type="text/javascript"></script>
622 623 624 <!-- Custom Syntax Highlight --> 625
625<script src="/resources/js/hljs-scala3.js" type="text/javascript"></script>
625 626 627 <!-- CodeMirror --> 628
628<script src="/resources/js/vendor/codemirror/codemirror.js" type="text/javascript"></script>
628 629
629<script src="/resources/js/vendor/codemirror/clike.js" type="text/javascript"></script>
629 630 631 <!-- TOC --> 632 633 634 <!-- Blog search --> 635
635<script src="/resources/js/vendor/jekyll.search.min.js" type="text/javascript"></script>
635 636 637 <!-- Custom javascript --> 638
638<script src="/resources/js/functions.js?v=20261001024508" type="text/javascript"></script>
638 639
639<script defer data-domain="scala-lang.org" src="https://plausible.scala-lang.org/js/script.js"></script>
639 640 </body> 641</html> 642
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.