JRuby徹底入門
『JRuby徹底入門』のサポートページへようこそ!



『JRuby徹底入門』をご購読頂きありがとうございます。
このページでは書籍正誤表、およびFAQ(良くある質問とその回答)をご覧いただけます。

書籍へのお問い合わせ・ご意見についてはこちらをご覧下さい。

>>正誤表へ FAQへ 






■ 正誤表 ■


場所
15 4行目 プラグラム プログラム
18 下から5行目 Active Record ActiveRecord
63 イラスト内 必ず呼び出される 必ず呼び出せる
126 下から3行目 index.rhtml.erb index.html.erb
177 下の枠内 jetty _rails jetty_rails
(※半角スペースは不要)
(182〜)183 全体 FAQ/問1.参照 FAQ/回答1.参照
205 最下段の実行結果内 Hello JRuby Hello
206 最下段の枠内 scripting:roject scripting: project
208 3行目 jaruby.jar jruby.jar
213 10行目 jruby.her jruby.jar
231 上部表内・データベースユーザのパスワード jruby pass
250 サンプルコード名 jdbc_csr04.rb jdbc_csv04.rb
260 図・右側 MyClass.new MyModule.new
271 サンプルコード(jdbc_ext.rb側) process(ARGV[0], ARGV[1], ARGV[2], ARGV[3]) 不要(※この行は削除して下さい)



■ FAQ ■


【問1】

P.183 の include_class にブロックを渡す例に誤りがあると思います。

include_class ["Date", "HashMap"].map {|e| "java.util." + e}

↑この例は、include_class にブロックを渡す機能の例にはなっていないです。

【回答1】
ご指摘いただきましたとおり、P182の下から5行目〜P183にかけて、説明内容に曖昧な点および一部誤りが含まれておりました。
この場をお借りしてお詫び申し上げるとともに、下記の通り加筆訂正させていただきます。


■対象箇所:P182の下から5行目〜P183
(※赤字部分が追記・訂正箇所となります)

なお、include_classメソッドの引数には「クラス名の配列」を渡すこともできます。このようにすると、配列に含まれるJavaのクラスをまとめてインクルードすることができます。
以下の例では、java.util.Date、java.awt.Dimensionという2つのクラスをまとめてインクルードしています。

------------------------------
include_class ['java.util.Date', 'java.awt.Dimension']
------------------------------

また、include_classの引数にブロックを渡すことで、指定したクラス名の配列の各要素に対して共通の編集処理をほどこすことも可能です。
あるパッケージから指定したクラスをまとめてインクルードしたい、あるいはインクルードするクラスに便宜的に別の名前を与えたい、というような場合など、この機能を使うと便利です。

以下の例では、java.util.パッケージの中からDateクラスとHashMapクラスだけを抜き出してインクルードしています。

------------------------------
include_class ["Date", "HashMap"] { |package, class_name| "java.util.#{class_name}"}
------------------------------

ちなみに、上記の処理は以下のように書き換えることもできますが、この場合はブロックを受け取っているのはArrayクラスのmapメソッドです。

include_class ["Date", "HashMap"].map { |class_name| "java.util." + class_name }

また、次のコードではJavaのStringクラスにJavaStringという別名をつけてインクルードを行っています。
------------------------------
include_class ("java.lang.String") { |package, class_name| "JavaString"}
------------------------------
 
【問2】

P.264のコードを実行するとNullPointerExceptionが発生します。

【回答2】
本書に記載のサンプルコードには、一部 JRuby 1.1.2上にて正しく動作しないものが含まれることを確認致しております。
誠に恐れ入りますが、このような場合はJRuby 1.1.4をご利用の上、ご確認頂きますようお願い申し上げます。

 
【問3】

3章以降でgemによるパッケージインストールが使用されていますが、実行するとOutOfMemoryERrorが発生します。
どうすれば回避できますか?

【回答3】
-J-Xmxオプションにより、Javaのメモリ最大使用量(最大ヒープサイズ)を多めに設定して実行してみてください。

[例]
>jruby -S -J-Xmx1024m gem install rails -v 2.0.2





■ お問い合わせ ■
本書内容についてのご質問は、切手返信用封筒を同封の上、ソーテック社までご送付下さい。

〒102−0072
東京都千代田区飯田橋4−9−5 スギタビル4F


■ ご意見・ご感想 ■
本書の誤りに関するご連絡、およびご感想・ご意見は下記にて受け付けております。
ソーテック社 読者アンケートページ




©2008 株式会社イーシー・ワンソーテック社