日々常々

ふつうのプログラマがあたりまえにしたいこと。

Redcar(とJRuby)をWindows7-64bitにインストールしたメモ

第7回「Groovyイン・アクション読書会」IN 関西 : ATNDに行ってきたので、Redcarをインストールしました。順接でつなぐのは間違っているように見えますが、書き間違えた訳ではありません。

Redcar?

Textmateっぽいものらしいです。
Textmateは@さんが使ってるのを見るたびに「なんかよさげだなー」と思ってたんですが、「私Windowsだから無理だし、Mac買ったら使うよ、うん。」とか思ってのですが、どうもRedcarってのがあると。てことでインストールしてみましょう。

インストール

見てみたらなんか「普通にダウンロードして実行」じゃダメっぽくて、gemとか書いてます。

sudo gem install redcar
redcar install

Installation · redcar/redcar Wiki · GitHub

gemがRubyな何かだって事はわかります。でもそれだけ。
私の端末にRubyはインストールされていません。てことでインストールしないといけません。でもそのままRubyをインストールしても面白くないので、JRubyにします。さらにインストーラー嫌いも患っているため、zipにします。こんな事してるからたまに動かなくて困るんですよね…。
適当なディレクトリに展開して、binにパスを通す。これで完了です。適当なディレクトリ*1に展開して、PowerShellでPATHを通します。PowerShellだとPATHはこんな感じになります。

$env:PATH+="C:\opt\jruby-1.6.2\bin;"

JRubyがインストールできたので、gemを使います。JRubyのbinをみたらgem.batとか入ってるのできっとそのまま使えるのでしょう。てことでgemを実行。

PS> gem install redcar
Fetching: rubyzip-0.9.4.gem (100%)
Fetching: redcar-0.11.gem (100%)

                                                                                                                                                            • -
Please now run: $ redcar install to complete the installation. (NB. do NOT use sudo. In previous versions, sudo was required for this step, but now it should be run as the user.) NB. This will download jars that Redcar needs to run from the internet. It will put them into ~/.redcar/assets.
                                                                                                                                                            • -
Successfully installed rubyzip-0.9.4 Successfully installed redcar-0.11 2 gems installed PS>

よくわかりませんが、素直にいけたっぽいです。続けて redcar install を実行。JRubyのbinにredcar.batとかが出来てるので、新たにパスを通すとかは要りませんし、勝手にパスが追加されたわけでもなさそうです。

PS> redcar install
Redcar 0.11 ( java )
found latest XULRunner release version: 1.9.2.18
Downloading >10MB of binary assets. This may take a while the first time.
  downloading http://jruby.org.s3.amazonaws.com/downloads/1.5.3/jruby-complete-1.5.3.jar... done!
  downloading http://redcar.s3.amazonaws.com/jface/org.eclipse.core.commands.jar... done!
  downloading http://redcar.s3.amazonaws.com/jface/org.eclipse.core.runtime_3.5.0.v20090525.jar... done!
  downloading http://redcar.s3.amazonaws.com/jface/org.eclipse.equinox.common.jar... done!
  downloading http://redcar.s3.amazonaws.com/jface/org.eclipse.jface.databinding_1.3.0.I20090525-2000.jar... done!
  downloading http://redcar.s3.amazonaws.com/jface/org.eclipse.jface.jar... done!
  downloading http://redcar.s3.amazonaws.com/jface/org.eclipse.jface.text_3.5.0.jar... done!
  downloading http://redcar.s3.amazonaws.com/jface/org.eclipse.osgi.jar... done!
  downloading http://redcar.s3.amazonaws.com/jface/org.eclipse.text_3.5.0.v20090513-2000.jar... done!
  downloading http://redcar.s3.amazonaws.com/jface/org.eclipse.core.resources.jar... done!
  downloading http://redcar.s3.amazonaws.com/jface/org.eclipse.core.jobs.jar... done!
  downloading http://redcar.s3.amazonaws.com/jruby/jcodings.jar... done!
  downloading http://redcar.s3.amazonaws.com/jruby/jdom.jar... done!
  downloading http://redcar.s3.amazonaws.com/jruby/joni.jar... done!
  downloading http://redcar.s3.amazonaws.com/jruby/bcmail-jdk14-139-redcar1.jar... done!
  downloading http://redcar.s3.amazonaws.com/jruby/bcprov-jdk14-139-redcar1.jar... done!
  downloading http://redcar.s3.amazonaws.com/jruby/jopenssl-redcar1.jar... done!
  downloading http://redcar.s3.amazonaws.com/java-mateview-0.11.jar... done!
  downloading http://redcar.s3.amazonaws.com/application_swt-0.11.jar... done!
  downloading http://redcar.s3.amazonaws.com/clojure-1.2beta1.jar... done!
  downloading http://redcar.s3.amazonaws.com/clojure-contrib-1.2beta1.jar... done!
  downloading http://redcar.s3.amazonaws.com/org-enclojure-repl-server.jar... done!
  downloading http://mirrors.ibiblio.org/pub/mirrors/maven2/org/codehaus/groovy/groovy-all/1.7.4/groovy-all-1.7.4.jar... done!
  downloading http://mirrors.ibiblio.org/pub/mirrors/maven2/org/tmatesoft/svnkit/svnkit/1.3.4/svnkit-1.3.4.jar... done!
  downloading http://redcar.s3.amazonaws.com/deps/rhino-js-1.7R2.jar... done!
  downloading http://redcar.s3.amazonaws.com/lucene-core-2.9.1.jar... done!
  downloading http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/1.9.2.18/runtimes/xulrunner-1.9.2.18.en-US.win32.zip... done!
unzipping C:\(ゆーざー)/.redcar/assets/xulrunner-1.9.2.18.en-US.win32.zip...  downloading http://redcar.s3.amazonaws.com/swt/win32.jar... done!
Precaching textmate bundles...
java -client -Xbootclasspath/a:"C:/(ゆーざー)/.redcar/assets/jruby-complete-1.5.3.jar" -Dfile.encoding=UTF8 -Xmx320m -Xss1024k -Djruby.memory.max=320m -Djruby.stack.max=1024k org.jruby.Main "C:/opt/jruby-1.6.2/lib/ruby/gems/1.8/gems/redcar-0.11/bin/redcar" --no-sub-jruby --ignore-stdin --no-gui --compute-textmate-cache-and-quit --multiple-instance --start-time=1309617113
C:/opt/jruby-1.6.2/lib/ruby/gems/1.8/gems/redcar-0.11/lib/redcar.rb:153:in `load_threaded': uninitialized constant Redcar::Top (NameError)
        from C:/opt/jruby-1.6.2/lib/ruby/gems/1.8/gems/redcar-0.11/lib/redcar.rb:151:in `initialize'
        from C:/opt/jruby-1.6.2/lib/ruby/gems/1.8/gems/redcar-0.11/lib/redcar.rb:151:in `new'
        from C:/opt/jruby-1.6.2/lib/ruby/gems/1.8/gems/redcar-0.11/lib/redcar.rb:151:in `load_threaded'
        from C:/opt/jruby-1.6.2/lib/ruby/gems/1.8/gems/redcar-0.11/bin/redcar:33
Done! You're ready to run Redcar.
PS>

…なんかGroovyとか入ってるよ?なに、中でGroovy使えるの?(ドウデモイイ)とりあえずこれでインストールは完了っぽい。

実行

redcar って叩けば実行出来るんだろーと、実行。

PS> redcar
Redcar 0.11 ( java )
Error loading plugin: 0)] 0 files>
  cannot link Java class org.eclipse.swt.widgets.Display, probable missing dependency: Cannot load 32-bit SWT libraries on 64-bit JVM
  org/jruby/javasupport/JavaUtilities.java:54:in `get_proxy_or_package_under_package'
  C:/opt/jruby-1.6.2/lib/ruby/site_ruby/shared/builtin/javasupport/java.rb:51:in `method_missing'
  C:/opt/jruby-1.6.2/lib/ruby/gems/1.8/gems/redcar-0.11/plugins/swt/lib/swt.rb:123:in `Widgets'
  C:/opt/jruby-1.6.2/lib/ruby/gems/1.8/gems/redcar-0.11/plugins/swt/lib/swt.rb:122:in `Swt'
  C:/opt/jruby-1.6.2/lib/ruby/gems/1.8/gems/redcar-0.11/plugins/swt/lib/swt.rb:8:in `(root)'
  org/jruby/RubyKernel.java:1038:in `require'
  C:/opt/jruby-1.6.2/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:in `require'
  C:/opt/jruby-1.6.2/lib/ruby/gems/1.8/gems/redcar-0.11/plugins/swt/lib/swt.rb:41:in `load'
  C:/opt/jruby-1.6.2/lib/ruby/gems/1.8/gems/redcar-0.11/lib/plugin_manager/lib/plugin_manager/plugin_definition.rb:58:in `log_requires'
  C:/opt/jruby-1.6.2/lib/ruby/gems/1.8/gems/redcar-0.11/lib/plugin_manager/lib/plugin_manager/plugin_definition.rb:40:in `load'
  C:/opt/jruby-1.6.2/lib/ruby/gems/1.8/gems/redcar-0.11/lib/plugin_manager/lib/plugin_manager.rb:126:in `load_plugin'
  C:/opt/jruby-1.6.2/lib/ruby/gems/1.8/gems/redcar-0.11/lib/plugin_manager/lib/plugin_manager.rb:109:in `load'
  C:/opt/jruby-1.6.2/lib/ruby/gems/1.8/gems/redcar-0.11/lib/redcar.rb:116:in `load_prerequisites'
  C:/opt/jruby-1.6.2/lib/ruby/gems/1.8/gems/redcar-0.11/lib/redcar.rb:150:in `load_threaded'
  C:/opt/jruby-1.6.2/lib/ruby/gems/1.8/gems/redcar-0.11/bin/redcar:33:in `(root)'
  org/jruby/RubyKernel.java:1063:in `load'
  C:\opt\jruby-1.6.2\bin\redcar:19:in `(root)'
NameError: uninitialized constant Swt::Graphics
         const_missing at org/jruby/RubyModule.java:2569
                  show at C:/opt/jruby-1.6.2/lib/ruby/gems/1.8/gems/redcar-0.11/plugins/swt/lib/swt.rb:42
  create_splash_screen at C:/opt/jruby-1.6.2/lib/ruby/gems/1.8/gems/redcar-0.11/plugins/swt/lib/swt.rb:91
           show_splash at C:/opt/jruby-1.6.2/lib/ruby/gems/1.8/gems/redcar-0.11/lib/redcar.rb:176
                (root) at C:/opt/jruby-1.6.2/lib/ruby/gems/1.8/gems/redcar-0.11/bin/redcar:34
                  load at org/jruby/RubyKernel.java:1063
                (root) at C:\opt\jruby-1.6.2\bin\redcar:19
PS>

こけたよ…。
見るからに Cannot load 32-bit SWT libraries on 64-bit JVM なので、JVMを切り替えればOK。

私のようなゆとりには、Javaをいちいち細かく指定したりなんて面倒なことは出来ないので、java32bit って叩いたらJAVA_HOMEとか変えてPATH切り替えるようにしてます。手抜き万歳。てことで……

PS> java32bit
PS> java -version
java version "1.6.0_25"
Java(TM) SE Runtime Environment (build 1.6.0_25-b06)
Java HotSpot(TM) Client VM (build 20.0-b11, mixed mode, sharing)
PS> redcar
Redcar 0.11 ( java )


画面

動いたー。

あ、Groovyのコードを見たかっただけです。そしてEclipseとか使うのは面倒くさかったんです。それだけのためにRedcarインストールするのと、どっちが面倒くさいのかは知りませんし、興味もありません。

*1:ここではC:\opt\jruby-1.6.2