Hatena::ブログ(Diary)

kaishitaeiichiの日記

2011-07-17 JRuby + Rails 3 + MySQL (Windows)

JRuby + Rails 3 + MySQL (Windows)

Windows上にJRuby + Rails 3 + MySQL環境をつくってみる。

Javaインストール

JRubyは、JavaVM上で動作するRuby。そんなわけで、JRubyを実行するためには、あらかじめ、Javaインストールしておく。Windows版のJavaでは、インストーラにしたがえばよい。


インストールがおわったら、

c:\>java -version
java version "1.7.0"
Java(TM) SE Runtime Environment (build 1.7.0-b147)
Java HotSpot(TM) Client VM (build 21.0-b17, mixed mode, sharing)

c:\>javac -version
javac 1.7.0

JRubyインストール

Home — JRuby.org

Downloads — JRuby.org

からJRubyダウンロードjruby-bin-1.6.3.zipを適当なディレクトリに展開する。

jruby-1.6.3\bin

PATHをとおす。

自分の環境は、PATHがごちゃごちゃしすぎているので、単純なjruby-console.cmdファイルをつくっておく。

@echo off
set JAVA_HOME=C:\Program Files\Java\jdk1.7.0
set PATH=%JAVA_HOME%\bin;%PATH%

set JRUBY_HOME=C:\Application\ProgrammingLanguage\Ruby\JRuby\jruby-bin-1.6.3
set PATH=%JRUBY_HOME%\bin;%PATH%

cd c:\

cmd

C:\>jruby -v
jruby 1.6.3 (ruby-1.8.7-p330) (2011-07-07 965162f) (Java HotSpot(TM) Client VM 1
.7.0) [Windows XP-x86-java]

C:\>jruby --1.9 -v
jruby 1.6.3 (ruby-1.9.2-p136) (2011-07-07 965162f) (Java HotSpot(TM) Client VM 1
.7.0) [Windows XP-x86-java]

JRubyインストール成功

MySQLインストール

MySQL :: Download MySQL Community Server

からWindows (x86, 32-bit), MSI Installerをダウンロードする。

ダウンロードページのダウンロードボタンを押すと、すぐにダウンロードはできず、ログインやらユーザ登録やらをもとめる入力フォームのある画面に画面遷移するけど、とりあえず、とばして、画面下部のNo thanks, just take me to the downloads!リンクをクリック。

ミラーサイトをからインストーラダウンロードする。

インストールは、インストーラにしたがえばよい。インストールは、MySQLインストールMySQL Server Instance Configuration Wizardの実行の2段階になっている。Configuration Wizardの途中で、データベース文字コードをどうするか指定する。ここでは、文字コードは、UTF-8を指定しておく。latin1のままだと、そりゃもう文字化けしまくる。

インストーラが正常終了して、MySQLサーバが起動していれば、コマンドラインから

mysql -u root -p --no-beep

とやって、ログインできるはず。

一応、文字コードの設定を確認しておこう。

 mysql> show variables like 'char%';
 +--------------------------+---------------------------------------------------------+
 | Variable_name            | Value                                                   |
 +--------------------------+---------------------------------------------------------+
 | character_set_client     | utf8                                                    |
 | character_set_connection | utf8                                                    |
 | character_set_database   | utf8                                                    |
 | character_set_filesystem | binary                                                  |
 | character_set_results    | utf8                                                    |
 | character_set_server     | utf8                                                    |
 | character_set_system     | utf8                                                    |
 | character_sets_dir       | C:\Program Files\MySQL\MySQL Server 5.1\share\charsets\ |
 +--------------------------+---------------------------------------------------------+
 8 rows in set (0.00 sec)

Rails 3のインストール

インストール前に、一応、環境を確認しておくか。じぶんは、JRuby以外に、複数のRubyの実行環境をインストールして、なんどかはまってしまったので、びくびくしている。no title RVMという複数のRuby環境を利用する便利な仕組みもあるようなのだが、いまは、いいや。


C:\>gem environment
RubyGems Environment:
  - RUBYGEMS VERSION: 1.5.1
  - RUBY VERSION: 1.8.7 (2011-07-07 patchlevel 330) [java]
  - INSTALLATION DIRECTORY: C:/Application/ProgrammingLanguage/Ruby/JRuby/jruby-bin-1.6.3/lib/ruby/gems/1.8
  - RUBY EXECUTABLE: C:/Application/ProgrammingLanguage/Ruby/JRuby/jruby-bin-1.6.3/bin/jruby.exe
  - EXECUTABLE DIRECTORY: C:/Application/ProgrammingLanguage/Ruby/JRuby/jruby-bin-1.6.3/bin

C:\>jruby --1.9 -S gem environment
RubyGems Environment:
  - RUBYGEMS VERSION: 1.5.1
  - RUBY VERSION: 1.9.2 (2011-07-07 patchlevel 330) [java]
  - INSTALLATION DIRECTORY: C:/Application/ProgrammingLanguage/Ruby/JRuby/jruby-bin-1.6.3/lib/ruby/gems/1.8
  - RUBY EXECUTABLE: C:/Application/ProgrammingLanguage/Ruby/JRuby/jruby-bin-1.6.3/bin/jruby.exe
  - EXECUTABLE DIRECTORY: C:/Application/ProgrammingLanguage/Ruby/JRuby/jruby-bin-1.6.3/bin

gemインストールする。jrubyには、もともとgemがふくまれている。

C:\>gem -v
1.5.1

gem自体のバージョンはもっとあがっていて、gem自体のアップグレードgemでできるようなのだけど、とりあえずこのままいこう。

gem自体のupdateをするなら

C:\>jruby -S gem update --system
....
C:\>gem -v

こちらは、古いバージョンの場合らしい。

C:\>jruby -S gem install rubygems-update
....
C:\>jruby -S update_rubygems
....
C:\>gem -v

また、なんどか、Rubyの実行環境 + Railsインストールした経験では、gemやらgemインストールするライブラリやらのバージョンのせいで、なぞのエラーがでることがけっこうあった。でも、ここでは、とりあえず気にしないでいこう。なにかあったらそのとき調べるさー。

以下は、Rubyのバージョン、1.9を意識して、1.9でコマンドたたくくせをつけようとして、1.9をつけてるのだけど、あんまり意味なかったみたい。どこで、どうすれば、効くのやら。

追記

JRuby 1.6.7とかだと、.jrubyrcファイルを作業ディレクトリか、ホームディレクトリにおいて、

compat.version = 1.9

と書いておくと、jrubyデフォルトruby 1.9互換で起動するようになる。



C:\>jruby --1.9 -S gem install rails
Fetching: activesupport-3.0.9.gem (100%)
Fetching: builder-2.1.2.gem (100%)
Fetching: i18n-0.5.0.gem (100%)
Fetching: activemodel-3.0.9.gem (100%)
Fetching: rack-1.2.3.gem (100%)
Fetching: rack-test-0.5.7.gem (100%)
Fetching: rack-mount-0.6.14.gem (100%)
Fetching: tzinfo-0.3.29.gem (100%)
Fetching: abstract-1.0.0.gem (100%)
Fetching: erubis-2.6.6.gem (100%)
Fetching: actionpack-3.0.9.gem (100%)
Fetching: arel-2.0.10.gem (100%)
Fetching: activerecord-3.0.9.gem (100%)
Fetching: activeresource-3.0.9.gem (100%)
Fetching: mime-types-1.16.gem (100%)
Fetching: polyglot-0.3.2.gem (100%)
Fetching: treetop-1.4.10.gem (100%)
Fetching: mail-2.2.19.gem (100%)
Fetching: actionmailer-3.0.9.gem (100%)
Fetching: thor-0.14.6.gem (100%)
Fetching: rdoc-3.9.2.gem (100%)
Depending on your version of ruby, you may need to install ruby rdoc/ri data:

<= 1.8.6 : unsupported
 = 1.8.7 : gem install rdoc-data; rdoc-data --install
 = 1.9.1 : gem install rdoc-data; rdoc-data --install
>= 1.9.2 : nothing to do! Yay!
Fetching: railties-3.0.9.gem (100%)
Fetching: bundler-1.0.17.gem (100%)
Fetching: rails-3.0.9.gem (100%)
Successfully installed activesupport-3.0.9
Successfully installed builder-2.1.2
Successfully installed i18n-0.5.0
Successfully installed activemodel-3.0.9
Successfully installed rack-1.2.3
Successfully installed rack-test-0.5.7
Successfully installed rack-mount-0.6.14
Successfully installed tzinfo-0.3.29
Successfully installed abstract-1.0.0
Successfully installed erubis-2.6.6
Successfully installed actionpack-3.0.9
Successfully installed arel-2.0.10
Successfully installed activerecord-3.0.9
Successfully installed activeresource-3.0.9
Successfully installed mime-types-1.16
Successfully installed polyglot-0.3.2
Successfully installed treetop-1.4.10
Successfully installed mail-2.2.19
Successfully installed actionmailer-3.0.9
Successfully installed thor-0.14.6
Successfully installed rdoc-3.9.2
Successfully installed railties-3.0.9
Successfully installed bundler-1.0.17
Successfully installed rails-3.0.9
24 gems installed

C:\>gem list

*** LOCAL GEMS ***

abstract (1.0.0)
actionmailer (3.0.9)
actionpack (3.0.9)
activemodel (3.0.9)
activerecord (3.0.9)
activerecord-jdbc-adapter (1.1.3)
activerecord-jdbcmysql-adapter (1.1.3)
activeresource (3.0.9)
activesupport (3.0.9)
arel (2.0.10)
builder (2.1.2)
bundler (1.0.17)
erubis (2.6.6)
i18n (0.5.0)
jdbc-mysql (5.1.13)
mail (2.2.19)
mime-types (1.16)
polyglot (0.3.2)
rack (1.2.3)
rack-mount (0.6.14)
rack-test (0.5.7)
rails (3.0.9)
railties (3.0.9)
rake (0.8.7)
rdoc (3.9.2)
sources (0.0.1)
thor (0.14.6)
treetop (1.4.10)
tzinfo (0.3.29)

C:\>gem which rails
C:/Application/ProgrammingLanguage/Ruby/JRuby/jruby-bin-1.6.3/lib/ruby/gems/1.8/gems/railties-3.0.9/lib/rails.rb

railsインストールできたようだ。

jruby --1.9 -S とかやっても、1.9にはならないのだな。じぶん、なにかをかん違いしてたか。


rails.vim

vimで作業するつもりなので、rails.vimをいれておこう。ちょっとキーバインドをおぼえれば、ファイルを開くのがとってもかんたんになる。

rails.vim - Ruby on Rails: easy file navigation, enhanced syntax highlighting, and more : vim online

インストールは、vimインストールディレクトリのruntime配下にコピペするだけ。


プロジェクトの作成と動作確認

参考

Ruby on Rails Guides: Getting Started with Rails

本家のチュートリアルRails 3対応。自分は、Railsの実務経験はないのだけど、Rails 2の本は3冊ぐらい読んでおり、最低限の知識はあったので、このチュートリアルでけっこうわかった。

Windows上で Ruby1.9.2 + Rails3 + SQLite or MySQL 環境を構築 - Everyleaf Lab

Windows + Ruby + Rails 3 + MySQLの環境をつくっている。

プロジェクトの作成

さっそく、サンプルアプリをつくってみる。Hello, Wolrd!という言葉が好きなので、helloworldプロジェクトを作成する。

C:\>rails new helloworld -d mysql
      create
      create  README
      create  Rakefile
      create  config.ru
      create  .gitignore
      create  Gemfile
      create  app
      create  app/controllers/application_controller.rb
      create  app/helpers/application_helper.rb
      create  app/mailers
      create  app/models
      create  app/views/layouts/application.html.erb
      create  config
      create  config/routes.rb
      create  config/application.rb
      create  config/environment.rb
      create  config/environments
      create  config/environments/development.rb
      create  config/environments/production.rb
      create  config/environments/test.rb
      create  config/initializers
      create  config/initializers/backtrace_silencers.rb
      create  config/initializers/inflections.rb
      create  config/initializers/mime_types.rb
      create  config/initializers/secret_token.rb
      create  config/initializers/session_store.rb
      create  config/locales
      create  config/locales/en.yml
      create  config/boot.rb
      create  config/database.yml
      create  db
      create  db/seeds.rb
      create  doc
      create  doc/README_FOR_APP
      create  lib
      create  lib/tasks
      create  lib/tasks/.gitkeep
      create  log
      create  log/server.log
      create  log/production.log
      create  log/development.log
      create  log/test.log
      create  public
      create  public/404.html
      create  public/422.html
      create  public/500.html
      create  public/favicon.ico
      create  public/index.html
      create  public/robots.txt
      create  public/images
      create  public/images/rails.png
      create  public/stylesheets
      create  public/stylesheets/.gitkeep
      create  public/javascripts
      create  public/javascripts/application.js
      create  public/javascripts/controls.js
      create  public/javascripts/dragdrop.js
      create  public/javascripts/effects.js
      create  public/javascripts/prototype.js
      create  public/javascripts/rails.js
      create  script
      create  script/rails
      create  test
      create  test/fixtures
      create  test/functional
      create  test/integration
      create  test/performance/browsing_test.rb
      create  test/test_helper.rb
      create  test/unit
      create  tmp
      create  tmp/sessions
      create  tmp/sockets
      create  tmp/cache
      create  tmp/pids
      create  vendor/plugins
      create  vendor/plugins/.gitkeep

これも

C:\>rails new helloworld -d mysql

ではなくて

C:\>jruby -S rails new helloworld -d mysql

としたほうがよかったのかな。まあいいや。

プロジェクトを作成したら、ためしに、railsでよくやる基本の動作確認。Webサーバ起動


C:\>cd helloworld
C:\helloworld>jruby --1.9 -S script\rails server
....
この辺の文字をはてなの日記にはりつけると日記が文字化けるのでやめておく。
....

おっと、起動失敗。日記が文字化けするからはりつけなかったけど、エラーメッセージを見る限り、mysql関連の設定が必要なようだ。必要なライブラリgemインストールして、さらにDBの接続設定も必要。

さてさてさて、どうすればよいのだろう。

JRubyなので、Javaの仕組みで、つまりJDBCアクセスできるようになっていると前になにかの記事で読んだことがある。

ライブラリを求めて、activerecord-jdbcmysql-adapter | RubyGems.org | your community gem hostから、さらに jruby-extras’s ActiveRecord-JDBC-0.5 Documentationへいくとサンプルが書いてある。

こいつも、gemインストールだ。

C:\helloworld>jruby --1.9 -S gem install activerecord-jdbc-adapter
Fetching: activerecord-jdbc-adapter-1.1.3.gem (100%)
Successfully installed activerecord-jdbc-adapter-1.1.3
1 gem installed

C:\helloworld>jruby --1.9 -S gem install activerecord-jdbcmysql-adapter
Fetching: jdbc-mysql-5.1.13.gem (100%)
Fetching: activerecord-jdbcmysql-adapter-1.1.3.gem (100%)
Successfully installed jdbc-mysql-5.1.13
Successfully installed activerecord-jdbcmysql-adapter-1.1.3
2 gems installed

Railsではこいつをどうやって利用するのかかも検索して、それらしい説明をしてくれているページを探す。。。。




設定ファイルの編集
helloworld/Gemfile
依存ライブラリの設定

RubyというかRails 3というかBundler: The best way to manage a Ruby application’s gemsの設定ファイルらしい。ここに依存ライブラリを書いておけばよいようだ。

RubyとRubyGemのしくみさえわすれていて、なんのことかピンとこなくて、どはまりした。それは、別の日記に書くとしよう。

MySQLに接続するためのライブラリを指定しておく。

Rubyでは、MySQLに接続するためのライブラリ自体が何種類かあるようだ。search | RubyGems.org | your community gem host うーん。。。。JavaJDBCのような統一されたインタフェースがないのだろうか。。。。自分のようなRubyの経験が浅いものにとっては、混乱のもとになってしまう。

ここでは、gemインストールしたJDBCドライバをつかえるように指定する。

....
#gem 'mysql2', '~> 0.2.6'
gem 'activerecord-jdbc-adapter'
gem 'activerecord-jdbcmysql-adapter'
gem 'jdbc-mysql',:require=>false
....

上では、gemインストールしてから、Gemfileを修正しているけれども、Rails 3には、bundle installという便利コマンドがあるらしい。Gemfileに書いてあるものをbundle installでインストールしてくれるらしい。

helloworld/config/database.yml
DB接続の設定

自分の環境に合わせて修正する。

....
test:
  adapter: jdbcmysql
  encoding: utf8
  reconnect: false
  database: helloworld_test
  pool: 5
  username: ユーザ
  password: パスワード
  host: localhost
....

C:\helloworld>jruby --1.9 -S script\rails server
=> Booting WEBrick
=> Rails 3.0.9 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2011-08-15 17:06:52] INFO  WEBrick 1.3.1
[2011-08-15 17:06:53] INFO  ruby 1.9.2 (2011-07-07) [java]
[2011-08-15 17:06:53] INFO  WEBrick::HTTPServer#start: pid=388 port=3000

rails serverだけだと、--1.9を指定しても、1.8.7で起動した。

script\rails serverとしたら、1.9.2で起動した。なぜ?

http://localhost:3000/

ブラウザでおなじみの画面が開けた。

さてさてさて、これで、開発できるのか?

scaffoldで自動生成

ひとまず、DBをつくっておこう。

C:\helloworld>rake db:create
(in C:/helloworld)

mysql> show databases;
+------------------------+
| Database               |
+------------------------+
| information_schema     |
| helloworld_development |
| mysql                  |
| performance_schema     |
| test                   |
+------------------------+
5 rows in set (0.06 sec)

config/database.ymlにあるデータベース名でつくってくれるらしい。

すくなくとも、rakeからはMySQLにつながったようだ。

rakeも、Railsとは、もともと別の、Rubyライブラリで、Antみたいに作業を自動化するためのライブラリらしい。

Rake -- Ruby Make

Railsの、なんでもRubyでやっちゃう姿勢は、ある種の爽快感を感じないでもないけど、やっぱり勉強することが盛りだくさんになるなあ。

どうも、集中力が続かず、ふらふらとしてしまうな。DBに接続できたので、scaffoldで、MVC関連のソースコードとかテーブル定義とか生成してみる。

PersonモデルにPersonテーブルをつくってみる。

C:\helloworld>rails generate scaffold Person name:string age:integer
      invoke  active_record
      create    db/migrate/20110815090448_create_people.rb
      create    app/models/person.rb
      invoke    test_unit
      create      test/unit/person_test.rb
      create      test/fixtures/people.yml
       route  resources :people
      invoke  scaffold_controller
      create    app/controllers/people_controller.rb
      invoke    erb
      create      app/views/people
      create      app/views/people/index.html.erb
      create      app/views/people/edit.html.erb
      create      app/views/people/show.html.erb
      create      app/views/people/new.html.erb
      create      app/views/people/_form.html.erb
      invoke    test_unit
      create      test/functional/people_controller_test.rb
      invoke    helper
      create      app/helpers/people_helper.rb
      invoke      test_unit
      create        test/unit/helpers/people_helper_test.rb
      invoke  stylesheets
      create    public/stylesheets/scaffold.css

Personについて、app/models/person.rbや、MVCソースコードが一括で生成された。

Model
app/controllers/people_controller.rb
View
app/views/people/*.html.erb
Controller
app/controllers/people_controller.rb

テストコードやテストデータまで生成されてるし。

テーブル定義
db/migrate/20110815090448_create_people.rb

もある。

テーブル定義をDBに反映する。

C:\helloworld>rake db:migrate
(in C:/helloworld)
==  CreatePeople: migrating ===================================================
-- create_table(:people)
   -> 0.1550s
   -> 0 rows
==  CreatePeople: migrated (0.1550s) ==========================================

mysqlクライアントから確認。

mysql> use helloworld_development
Database changed
mysql> show tables;
+----------------------------------+
| Tables_in_helloworld_development |
+----------------------------------+
| people                           |
| schema_migrations                |
+----------------------------------+
2 rows in set (0.02 sec)

mysql> desc people;
+------------+--------------+------+-----+---------+----------------+
| Field      | Type         | Null | Key | Default | Extra          |
+------------+--------------+------+-----+---------+----------------+
| id         | int(11)      | NO   | PRI | NULL    | auto_increment |
| name       | varchar(255) | YES  |     | NULL    |                |
| age        | int(11)      | YES  |     | NULL    |                |
| created_at | datetime     | YES  |     | NULL    |                |
| updated_at | datetime     | YES  |     | NULL    |                |
+------------+--------------+------+-----+---------+----------------+
5 rows in set (0.03 sec)

ちゃんと、できているようだ。

動作確認

ふたたびWebサーバ起動

C:\helloworld>jruby --1.9 -S script\rails server
=> Booting WEBrick
=> Rails 3.0.9 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2011-08-15 18:14:12] INFO  WEBrick 1.3.1
[2011-08-15 18:14:12] INFO  ruby 1.9.2 (2011-07-07) [java]
[2011-08-15 18:14:12] INFO  WEBrick::HTTPServer#start: pid=3424 port=3000

ブラウザからhttp://localhost:3000/peopleを開く

f:id:kaishitaeiichi:20110815182552g:image

開けた。

ブラウザからデータを登録してみると、登録もOK!

f:id:kaishitaeiichi:20110815182553g:image

うまくうごいたようだ。

mysqlクライアントで中身も確認してみる。

mysql> set names sjis;
Query OK, 0 rows affected (0.00 sec)

mysql> select * from people;
+----+------------+------+---------------------+---------------------+
| id | name       | age  | created_at          | updated_at          |
+----+------------+------+---------------------+---------------------+
|  1 | こんにちは          |   10 | 2011-08-15 09:22:49 | 2011-08-15 09:23:30 |
|  2 | 世界          |   20 | 2011-08-15 09:23:13 | 2011-08-15 09:23:13 |
+----+------------+------+---------------------+---------------------+
2 rows in set (0.05 sec)

できてるてきてる。

これで、最低限の開発環境はできた。

開発環境というより勉強環境か。

つぎは、実際の運用環境をおさえたいな

2010-12-19 なつかしのCygwin

なつかしのCygwin

VMwareだのVirtualBoxだの仮想環境が登場する前は、CygwinをつかってWindows上にLinuxライクな環境をつくろうと悪戦苦闘した経験がある。

何かを利用する度に、何かが足りなくて、力およばず挫折ばかりだったが。

なつかしのCygwinを数年ぶりにインストールしてみた。bashシェルスクリプトWindows上でお手軽に試したかったもので。

インストールは、インストーラにしたがえばよい。インストールパッケージの選択画面で、

Editorのvim

を選択することだけは忘れずにと。

Cygwinを起動すると、bashシェルスクリプトは、期待通りお手軽に試せて便利。

また、WindowsPathがそのまま、Cygwinでも利用できるようだ。WindowsPathに通してあるjavaコマンドとかscalaコマンドも実行できた。

昔からこうだったんだっけ?

以前は、Cygwinインストールしたらしたで、はじめにいろいろ設定することがあった気がしたが、今は、インストール直後から簡単に便利につかえるようになった気がする。

生き残ってるやつはちゃんと進歩しているんだなー。

Re: いますぐコマンドプロンプトを捨てて、Cygwinを使うべき10+の理由 - BOOLEANLABEL

2010-12-05 Scala 開発環境を準備する

Scala 開発環境を準備する


インストール

Windows

まず、Javaインストール

Java SE Downloads - Sun Developer Network (SDN)

Downloadを押下すると画面遷移

PlatformのselectボックスでWindowsを選択して、Continueを押下すると画面遷移

jdk-6u21-windows-i586.exeリンクをクリック

Javaインストーラダウンロード

Javaインストーラを実行

そして、Scalaインストール

scala-2.8.1.final.zip

ダウンロード

ダウンロードしたら、展開する。

展開したディレクトリ

scala-2.8.1.final

scala-2.8.1.final/bin

にパスをとおす。

コマンドラインから、scalaコマンドを起動する。

REPLのためのコンソールが立ち上がればOK。

C:\>scala
Welcome to Scala version 2.8.1.final (Java HotSpot(TM) Client VM, Java 1.6.0_21)
.
Type in expressions to have them evaluated.
Type :help for more information.

scala>

本家にも説明がある。

Getting Started with Scala | The Scala Programming Language

トラブル

自分は、64bit版のWindows Vistaをつかっているのだけど、Scalaが実行できませぬ!コマンドラインscalaを実行するとエラーになってしまう。scalaコマンドはWindowsのバッチファイルだけど、自分には、なにが悪いのかわからなかった。

NetBeansをインストールしたら、NetBeansからは実行できた。あらかじめ設定してあった環境変数SCALA_HOMEを認識してくれたのか?

64bit版のWindows Vistaで、コマンドラインをつかうために、


自分のコピペ用(2011-08-14時点)

my-scala.cmd

@echo off
rem 管理者権限でシンボリックリンク作成しておく。Vistaだとシンボリックリンクが使えた。
rem mklink /d C:\jdk "C:\Program Files (x86)\Java\jdk1.7.0"
set JAVA_HOME=C:\jdk
set PATH=%JAVA_HOME%\bin;%PATH%
set SCALA_HOME=C:\Application\ProgrammingLanguage\Scala\scala-2.9.0.1
set PATH=%SCALA_HOME%\bin;%PATH%
cd C:\
cmd /K "scala"

このやり方だと、scalaもscalacもうごく。

my-scala.cmd

@echo off
set JAVA_HOME=C:\Program Files (x86)\Java\jdk1.7.0
set PATH=%JAVA_HOME%\bin;%PATH%
@rem ダミーのJAVA_HOMEを設定するとscalaコマンド実行時にエラーにならないようだ
@rem ダミーにしなくてもJavaのインストール場所をデフォルトから変更すればよさそう
set JAVA_HOME=C:\Program Files\Java\jdk1.7.0
set SCALA_HOME=C:\Application\ProgrammingLanguage\Scala\scala-2.9.0.1
set PATH=%SCALA_HOME%\bin;%PATH%
cd c:\
cmd /K "scala"

このやり方だと、おかしいけど、scalaもscalacもうごく。

my-scala.cmdを実行して、すぐにScalaのREPLをexitして、scalaとscalacを実行

Welcome to Scala version 2.9.0.1 (Java HotSpot(TM) Client VM, Java 1.7.0).
Type in expressions to have them evaluated.
Type :help for more information.

scala> exit
warning: there were 1 deprecation warnings; re-run with -deprecation for details

c:\>scala -help
Usage: scala <options> [<script|class|object|jar> <arguments>]
   or  scala -help

....

c:\>scalac -help
Usage: scalac <options> <source files>
where possible standard options include:
  -Dproperty=value           Pass -Dproperty=value directly to the runtime system.
  -J<flag>                   Pass <flag> directly to the runtime system.
....

c:\>

my-scala.cmd

@echo off
set JAVA_HOME="C:\Program Files (x86)\Java\jdk1.7.0"
set PATH=%JAVA_HOME%\bin;%PATH%
set SCALA_HOME=C:\Application\ProgrammingLanguage\Scala\scala-2.9.0.1
set PATH=%SCALA_HOME%\bin;%PATH%
set CLASSPATH=.
set CLASSPATH=%CLASSPATH%;%SCALA_HOME%\lib\jline.jar
set CLASSPATH=%CLASSPATH%;%SCALA_HOME%\lib\scala-compiler.jar
set CLASSPATH=%CLASSPATH%;%SCALA_HOME%\lib\scala-dbc.jar
set CLASSPATH=%CLASSPATH%;%SCALA_HOME%\lib\scala-library.jar
set CLASSPATH=%CLASSPATH%;%SCALA_HOME%\lib\scala-swing.jar
set CLASSPATH=%CLASSPATH%;%SCALA_HOME%\lib\scalap.jar
cmd /K "java -cp %CLASSPATH% -Dscala.home=%SCALA_HOME% scala.tools.nsc.MainGenericRunner %*"

このやり方dと、残念なことに、まともにうごくのscalaのREPLだけだな。

やっぱり、scalaやscalacが動かないorz

IDEとかエディタとか

エディタやIDEについては、ここにいろいろ書いてあるみたいだ。

IDE and Editor plugins | The Scala Programming Language

vimScala

vimインストール

Windows版だったら、

香り屋 — KaoriYa

のところで用意してもらえてるやつがらくちんです。とってもありがたい。

scala-2.8.1.final.zip

ダウンロード

ダウンロードしたら、展開する。

展開したディレクトリ

scala-2.8.1.final

scala-2.8.1.final/misc/scala-tool-support/vim

にあるディレクトリを、vimインストールディレクトリ配下の

vim73-kaoriya-w32j/runtime

コピペする。


Net Beans 6.9でScala

まずは、NetBeans 6.9をインストール

no title

ダウンロードしてインストーラを実行する。

Scala Plugins for NetBeansのインストールは、

Scala - NetBeans Wiki

にしたがう。

NetBeans 6.9用のプラグインをダウンロードする。

ErlyBird - Browse /nb-scala at SourceForge.net

ダウンロードしたら展開する。

展開したディレクトリの中を見ると、

nb-scala-6.9v1.1.0/nb-scala-6.9v1.1.0

xxxx.nbm

というファイルたくさんある。

NetBeans 6.9を起動して、プラグインをインストール、プロジェクトを作成してみる。

メニューのツールからプラグインを選択

f:id:kaishitaeiichi:20101205210508g:image

ダウンロード済みタブのプラグインの追加ボタンを押下。先ほどの*.nbmファイルを全部選択する。

f:id:kaishitaeiichi:20101205210703g:image

インストールボタンを押下する。

f:id:kaishitaeiichi:20101205210704g:image

インストール完了

f:id:kaishitaeiichi:20101205210705g:image

メニューのファイルから新規プロジェクトを選択する。さらに、ScalaScala Applicationを選択する。

f:id:kaishitaeiichi:20101205210706g:image

テンプレートとして自動でつくられたMain.scalaを実行してみる。

f:id:kaishitaeiichi:20101205211051g:image

Hello, World!

f:id:kaishitaeiichi:20101205211052g:image

メニューのツールを見ると、Scala Platformsというのがある。

こいつで、Scalaを選択できるようだ。

EclipseでScala

Scala IDE for Eclipse

ここの

Copy update site URL to clipboardボタン?をクリックすると、

http://download.scala-ide.org/update-current-35

こいつが、Eclipseのプラグインか。

あとはいつものように、プラグインを追加すればよいのだな。


IntelliJ IDEAでScala

IntelliJ IDEA :: Best Java IDE to do more high-quality code in less time

ネットでIDEやエディタを探していると、ちらほら見かけるIntelliJ IDEA

いつのまにか、無償のCOMMUNITY EDITIONでていた。

こいつが、Scalaも使えるのか?

試せてない!