Scala:学習:ちょっと使ってみる

※ 参考

ちょっと使ってみる。

パッケージマネージャ Chocolatey は 先に入れておいた ので、これを使ってインストール。

PowerShellにて"choco install sbt"と入力
PS C:\WINDOWS\system32> choco install sbt
Chocolatey v0.10.11
Installing the following packages:
sbt
By installing you accept licenses for the packages.
Progress: Downloading sbt 1.2.8... 100%

sbt v1.2.8 [Approved]
sbt package files install completed. Performing other installation steps.
The package sbt wants to run 'chocolateyInstall.ps1'.
Note: If you don't run this script, the installation will fail.
Note: To confirm automatically next time, use '-y' or consider:
choco feature enable -n allowGlobalConfirmation
Do you want to run the script?([Y]es/[N]o/[P]rint): Y

WARNING: No registry key found based on  'sbt*'
WARNING: sbt has already been uninstalled by other means.
Downloading sbt
  from 'https://piccolo.link/sbt-1.2.8.msi'
Progress: 100% - Completed download of C:\Users\user\AppData\Local\Temp\chocolatey\sbt\1.2.8\sbt-1.2.8.msi (45.58 MB).
Download of sbt-1.2.8.msi (45.58 MB) completed.
Hashes match.
Installing sbt...
sbt has been installed.
  sbt may be able to be automatically uninstalled.
Environment Vars (like PATH) have changed. Close/reopen your shell to
 see the changes (or in powershell/cmd.exe just type `refreshenv`).
 The install of sbt was successful.
  Software installed as 'MSI', install location is likely default.

Chocolatey installed 1/1 packages.
 See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).
PS C:\WINDOWS\system32>

Scala用のフォルダを作成
ここでは C:\work フォルダを作成、ここに参考ページのサンプルソース(Hello.scala)を作成。
object Hello {
  def main(args: Array[String]) = {
    println("Hello, World!")
  }
}

PowerShellを終了し、もう一度PowerShellを起動後、パスを "C:\work"に変更し "sbt" と入力
Scalaの環境を構築する
PS C:\work> sbt
[warn] Neither build.sbt nor a 'project' directory in the current directory: C:\work
c) continue
q) quit
? c

The Java Development Kit (JDK) installation you have is not up to date.
sbt requires at least version 6+, you have
version 0

Please go to http://www.oracle.com/technetwork/java/javase/downloads/ and download
a valid JDK and install before running sbt.

'"java"' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
PS C:\work>

→ Java が必要でした。
Oracle JDKでいいのかな?

示されたリンクから Java (Java SE 11.0.2(LTS) jdk-11.0.2_windows-x64_bin.exe) をダウンロードし、インストール。
環境変数 JAVA_HOME に "C:\Program Files\Java\jdk-11.0.2" を追加
PowerShellをまた立ち上げ直し "sbt" コマンド

今度は動き始めた。(大量に画面表示されるので内容をblogに張り付けるのはやめておく)

終わるとプロンプトが "sbt:work" となった。

これでコンパイルが終わっているらしいの "run"コマンドで実行
Hello World! と表示されました。
sbt:work> run
[info] Compiling 1 Scala source to C:\work\target\scala-2.12\classes ...
[info] Done compiling.
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.google.protobuf.UnsafeUtil (file:/C:/Users/user/.sbt/boot/scala-2.12.7/org.scala-sbt/sbt/1.2.8/protobuf-java-3.3.1.jar) to field java.nio.Buffer.address
WARNING: Please consider reporting this to the maintainers of com.google.protobuf.UnsafeUtil
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
[info] Packaging C:\work\target\scala-2.12\work_2.12-0.1.0-SNAPSHOT.jar ...
[info] Done packaging.
[info] Running Hello
Hello, World!
[success] Total time: 2 s, completed 2019/01/23 3:23:02
sbt:work>

Hello.scalaを編集し、サンプルページのFizzBuzzのソースを入力
// FizzBuzzオブジェクトの定義
object FizzBuzz {
  // mainメソッドの定義 --- (*1)
  def main(args: Array[String]) = {
    (1 to 100).map(fizzbuzz).foreach(println)
  }
  // fizzbuzzメソッドの定義 --- (*2)
  def fizzbuzz(i: Int): String = {
    if (i % 3 == 0 && i % 5 == 0) {
      "FizzBuzz"
    } else if (i % 3 == 0) {
      "Fizz"
    } else if (i % 5 == 0) {
      "Buzz"
    } else {
      i.toString
    }
  }
}

PowerShellで"sbt"と"run"を実行
※"sbt"コマンドはやらなくても良かったのかな?


[Scala]

0 件のコメント:

その他の記事