前提・実現したいこと
scala,sbt超初心者でございます。このたび、競馬情報の入手において
https://github.com/stockedge/netkeiba-scraper様が公開されておりますscalaコードを
使わせていただこうとしておりますが、そもそもの初期の設定に苦慮しております。
scala,java,sbtはインストール済でございます。
試しに、hello ディレクトリを作って、以下の内容の hw.scala というファイルを作成しようと
いたしました。
object Hi { def main(args: Array[String]) = println("Hi!")}
次に hello ディレクトリ内から sbt を起動して sbt のインタラクティブコンソールに run と入力しましたところ、以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
C:\Users\satoru>cd horse
C:\Users\satoru\horse>cd hello
C:\Users\satoru\horse\hello>echo 'object Hi { def main(args: Array[String]) = println("Hi!") }' > hw
.scala
C:\Users\satoru\horse\hello>sbt
Java HotSpot(TM) Client VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
[info] Set current project to hello (in build file:/C:/Users/satoru/horse/hello/)
> run
[info] Compiling 1 Scala source to C:\Users\satoru\horse\hello\target\scala-2.10\classes...
[error] C:\Users\satoru\horse\hello\hw.scala:1: unclosed character literal
[error] 'object Hi { def main(args: Array[String]) = println("Hi!") }'
[error] ^
[error] C:\Users\satoru\horse\hello\hw.scala:1: expected class or object definition
[error] 'object Hi { def main(args: Array[String]) = println("Hi!") }'
[error] ^
[error] two errors found
[error] (compile:compileIncremental) Compilation failed
[error] Total time: 5 s, completed 2016/08/21 10:32:34
>
該当のソースコード
object HelloWorld{
def main(args: Array[String]){
if(args.size == 0) {
val strs = Array("Hello", "World")
output(strs)
} else {
printf("Invalid args.")
}
}
def output(strs: Array[String]):Unit = {
for(str <- strs) {
printf("%s ", str)
}
}
}
```
試したこと
上記を"HelloWorld.scala"というファイル名で保存しました。
そしてコンソールでscala HelloWorld.scalaとコマンドしましたらうまく出来ました。
補足情報(言語/FW/ツール等のバージョンなど)
scala sbt
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
checkベストアンサー
0
エディターでソースコードを表示してみて下さい。
おそらくソースコードは
'object Hi { def main(args: Array[String]) = println("Hi!") }'
こういう状態になっているのではありませんか?
Windowsの場合は、echo ' '
のようにクォーテーションで囲んでもそれがそのままファイルに出力されてしまいます。
参考にしたコマンドは、Windowsで実行することを想定していないんだと思います。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.13%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
2016/08/21 14:23
ご指摘のとおり、 Linux、Mac OS X の場合のコマンドでございました。
windowsのソースコードを御教示いただけますと幸いでございます。
よろしくお願いいたします。
2016/08/21 14:43
インターネットの記事は、必ずしも初心者に配慮して書かれているとは限りませんし、最悪の場合間違っている可能性もあります。
何か参考にして上手く行かないときは、まずそのサイトをいったん捨てて、他のものを探すことを検討してみて下さい。
echoコマンドでやっているのは、
おそらくsbtの説明だけをしたくてエディターの操作の説明を省くためと思われます。
なので、エディターでhw.scalaを開いて修正すれば良いです。
2016/08/21 14:52
他のものを探す考え方は、発想もございませんでした。
また、新しい引き出しを貴殿からいただきました。
ありがとうございました。
今後も御教示よろしくお願いいたします。