『Java言語入門』−
お知らせと正誤表
変更日1999年10月8日
お知らせ
JDKの新版について(98年9月7日)
すでにご存知の方も多いと思いますが,JDKは新しいバージョンが発表されています。
この本では,少し古いJDK 1.0に基づいています。
基本的なプログラミング手法については,十分役に立つと思います。
現在,ほかの本の翻訳や改訂を行っており,『Java言語入門』の方にはまだ手が回りませんが,
改訂の予定ですので,お待ちください。
最新情報については,『Java言語入門』関連の情報源のページを参照してください。
WindowsにおけるCLASSPATHの設定について(1999年6月18日)
読者の方からCLASSPATHという変数が設定してあると動かないというご指摘をいただきました。
最初の例がうまく実行できない方,DOSのプロンプトで set と入力して,
CLASSPATH=...という文字列が表示されないか確認してください。
もし,そのような行があるようでしたら,次のように入力してからjavacやjavaを実行してください。
set CLASSPATH=
この方は,「Adobe PhotoDelux for ファミリー」が最初から利用できるようになっているパソコンをお使いでした。
Macintosh版JDKのインストールについて(97年11月22日)
読者からの情報によりますと(稲葉さんありがとうございます),
Mac版のInternet Explorer 3.0(IE 3.0)とJDKの相性が悪いようです。
JDKがうまく動作しない場合はIEのインストール時に機能拡張フォルダにできる
MS Preference Panelsというフォルダのなかにある
Javaというファイルを
システムフォルダから外してみてください。これで動くようです(再起動の必要は
ありません)。
なお,機能拡張マネージャでは外すことができないようです。
これでもうまく動かないようでしたら,機能拡張フォルダの中の
JavaSoft FolderというフォルダとJDK 1.0.2のフォルダを
をごみ箱に入れて消してからJDKを再インストールしてみてください。
IEのバージョン4.0では問題がないようですので,IEを使う場合は
4.0をお使いになる方がよいかもしれません。
この点に関して情報をお持ちの方はbooks@marlin-arms.co.jpまでご連絡いただけると幸いです。
(Microsoftさん,まさかわざとなさったんじゃないですよね?)
Windows版JDKのインストールについて
初版第2刷までには,JDK-1_0_2-WIN32-X86.EXEをハードディスクにコピーしてダブルクリックすると
JDKというディレクトリができると書いてありますが,JAVAというディレクトリができます。ご訂正ください。
それから,「JAVA\BINのディレクトリをPATHに追加する」仕方がわからないというお尋ねを何件かいただいておりますが,
次の手順でこの設定を行ってください。
- 「メモ帳」などのプログラムを使って,ハードディスクの一番上のディレクトリ
にあるautoexec.batというファイルを開いてください。
いわゆるIBM互換機では普通 C: というドライブにあります。NECやその互換機ではA:にあるのが普通です。
- このautoexec.batファイルの一番最後に次の行を追加してください
(なお,日本語システムでは通常バックスラッシュ(\)のかわりに円記号(\)を使います)。
SET PATH=C:\JAVA\BIN;"%PATH%"
ここで,C:\JAVA\BINというのが手順3の「JAVA\BINのディレクトリ」に相当する
ものです。この例では,C:というハードディスクの一番上にディレクトリJAVAを作成した場合を
想定しています。
なお,本格的にプログラムを作る場合は,このPATHの設定などを含めMS-DOSの知識が必要になると思われます。
必要に応じてMS-DOSの解説書などをお読みになることを強くおすすめいたします。
このページの最初に戻る 『Java言語入門』のページに戻る
正誤表
皆さんからたくさんのご指摘をいただきました。ありがとうございます。
次刷から訂正させていただきます。
初版第7刷までの正誤表
- p. 144,入力例7-4の16行目と19行目の}の位置をその上の}とそろえてください。
- p. 412,図16-1,MyFisrtInterface → MyFirstInterface。
- p. 414,図16-2,MyFirstInterfaceとMySecondInterfaceの位置が逆です。
- p. 414,図16-2,FisrtImplementor → FirstImplementor。
- p. 414,1行目,MySecondInterface → MyFirstInterface。
- p. 454,10行目,MyseconfThread → MysecondThread。
- p. 454,下から11行目,MySecondThraed → MySecondThread。
- p. 456,二つ目のメモの最後の行,「どうしょうもなくなります」 → 「どうしようもなくなります」
- p. 460,下から6行目,「設計に応じて決まるのります」 → 「設計に応じて決まります」
- p. 477,14行目,「添字100から添字399までの100バイト」 → 「添字100から添字299までの200バイト」。
以上,菊地さん,ご指摘ありがとうございました。(98年10月6日)
- p. 442,上のメモの最後の行,「使われるている」 → 「使われている」
- p. 524,下のメモの4行目,「このこのドキュメント」 → 「このドキュメント」
- p. 537,メモの3行目,「必要がります」 → 「必要があります」
- p. 537,下から5行目,「期すならは」 → 「期すならば」
- p. 540,下から5行目,dobule → double
- 552,メモの下から4行目,[| → [I(最後の文字は大文字のアイです)
- 557,14行目,次を追加,□ 値1 値2 → (if_cmpge b1 b2) →
- 557,下から15行目,fcmpl → fcmpg
- 559,下から7行目,「値は32」をひとつとる
- 558,下のメモの3行目,「戻り用の命令」 → 「戻り用の命令で」
- 559,下から6行目,NullPointeException → NullPointerException
- 560,7行目,NullPointeException → NullPointerException
- 560,下から9行目,「クラスオブジェクトを取り出され」→ 「クラスオブジェクトが取り出され」
- 563,14行目,「実行されてる」 → 「実行される」
- 564,2行目,「1語の場合2語の場合」 → 「1語の場合と2語の場合」
- 564,メモの3行目,nconsants → nconstants
- 564,下から3行目,「安全でである」 → 「安全である」
- 565,下から11行目:constant_poolの c を太字に
- 568,下から11行目と下から3行目,「コミニュティ」 → 「コミュニティ」
- 579,下から5行目,loalArray → localArray
- 580,2行目,iinc 3 -1 → iinc_3 -1
- 580,9行目,iladd → iadd
- 581,6行目,iconst 5 → iconst_5
- 581,メモの1行目,Postscript → PostScript
以上高橋さん,ありがとうございました。
だいぶ以前にいただいていたのですが,引き出しにしまい込んだまま確認し忘れていました。すいません。まだ,いただいたのがありますが,追々確認して載せていきます(98年10月6日)
- p. 366,2つめのメモ,現在のURLはhttp://www.musha.com/tyj/chap14/GetRaven.htmlに変わりました。また,リストの18行目のURLもご訂正ください。
以上,若林さん,ご指摘ありがとうございました。(98年9月7日)
初版第6刷までの正誤表
- p.200,下から4行目,g.setfont(f); はg.setFont(f);
のまちがいです。
- p.364,4行目,if文以下の2行を 「{」と「}」で囲んでください。
- 本文中に出現する「ガベージコレクタ」および「ガベージコレクション」を
すべて「ガーベジコレクタ」および「ガーベジコレクション」に変更してください。
また,索引の「ガベージコレクタ」は削除して,「ガーベジコレクタ」の項に
「, 569」を追加してください。(両方の用語が使われていますので統一します)
以上,杉山さん,ご指摘ありがとうございました。(97年11月22日)
- p. 318,図13-18のキャプション(説明),ButtonAction → ButtonActionsTest。
- p. 333,メモの3行目,「第1章で説明しましたが,」を削除。
以上,高橋さん,たびたびのご指摘ありがとうございました。(97年11月22日)
- p. 362,上から6行目,(補足説明)「ブラウザに新しいページをロードさせることでしょう」の後に「(ブラウザにページを読み込むことを依頼するだけで,アプレットからページの内容を読み込むことは,アプレットが元々保存されたシステム上のファイルを除いてはできません)」を追加してください。
- p. 148,下から4行目,X isの前に「"」が必要です。
- p. 184,9行目,「頂点の」がひとつよけいです。
- p. 224,リストの11行目,「;」をとってください。たぶん影響はないでしょうが,ifの条件が成立したときには何も実行されず,{...}の部分が常に実行されてしまいます。同じように,p. 217の2行目,p. 229リストの11行目の「;」もとってください。
高島さん,ご指摘ありがとうございました。(97年8月18日)
初版第3刷までの正誤表
高島さん,ご指摘ありがとうございました。(97年2月24日)
- p. 33 入力例2-1の5行目と11行目。ShowATTSをShowATTs"に訂正してください。なお,14行目がStarting engine...となっていない場合はこちらも訂正してください(下記96年8月16日付け訂正参照)。
高島さん,ご指摘ありがとうございました。(97年2月14日)
- p. 445,上のリストの下から3行目,return imortantValue;はreturn importantValue;のまちがいです。pが抜けています。
南さん,ご指摘ありがとうございました。(97年2月9日)
- p. 114,上のリストの下から2行目,count++ → count++;
- p. 114,下から7行目,contineu → continue
以上,吹野さん,ご指摘ありがとうございました。(96年12月25日)
- p. 273,1行目,mounseUp() → mouseUp()
- p. 273,"Too many lines" → "Too many lines."
- p. 280,見出し,「メソッドHandleEvent() 」→ 「メソッドhandleEvent()」
- p. 284,下から7行目,仕事 → 仕様
以上,高橋さん,再7度のご指摘ありがとうございました。(96年12月14日)
- p. 239,1行目,「最後の」を削除してください。
- p. 256,入力例 リスト11-4,最初のコメントは削除してください。コメントが内容を反映していません。
以上,高橋さん,再6度のご指摘ありがとうございました。(96年12月11日)
高塚さん,ご指摘ありがとうございました。(96年12月9日)
このページの最初に戻る 『Java言語入門』のページに戻る
- p. 213,下から6行目,第18章 → 第17章
- p. 218,下から12行目,if (runner == null); {の;をとる。CD-ROMのサンプルプログラムからも;を削除してください。この;があっても,プログラムは問題なく動作するはずですが,訂正前のプログラムでは,if文の意味がなく
なってしまいます。
(97年8月19日追加)同じ訂正を,217,224,229の各ページのif文に付いても行ってください。
- p. 219,リストの13行目,上と同様,if (runner == null); {の;をとる。
- p. 221,「第1の解決策」の3行目,「All the swirly colors」→「All the Swirly Colors」
- p. 231,下から3行目,「第17章」→「第18章」
- p. 232,8行目,「Swirling Colors」→「Swirly Colors」
以上,高橋さん,再5度のご指摘ありがとうございました。(96年12月2日)
- p. 166,9行目,「HEIGHT=50」→「HEIGHT=75」
- p. 147,2段落目の1行目,「PrintClassのmain()では,PrintClassオブジェクトを」 → 「PrintSubClassのmain()では,PrintSubClassオブジェクトを」。下に訂正がありますが,もう1箇所訂正が必要でした。
- p.182,「Graphics クラス」2段落目の1行目,awt (Abstract Windowing Toolkit) → awt (Abstract Window Toolkit) 。
これについては,両方使われているようですが,Sunのサイトのドキュメントで
Abstract Window Toolkitとなっていましたので,一応訂正しておきます。
- p. 183,下から5行目, 「メソッド drawLine() 使います」→ 「メソッド drawLine() を使います」
- p. 195,入力例 9-1,25 行目,「}」を追加してください。
以上,高橋さん,再4度のご指摘ありがとうございました。(96年11月27日)
- p. 74の最初,次のメモを追加してください(これは誤りではありませんが,StringBufferクラスの説明がないと
不親切ですので追加します)。
メモ
クラスStringで扱えるのは,変化しない文字列だけです。上の例のように内容を書き換え可能な文字列を扱うためにはStringBufferというクラスを使います。したがって,上の例では次のように宣言されていることを仮定しています。
StringBuffer myName;
なお,索引にも「StringBufferクラス ................ 74,612」を追加してください。
- p. 373,1行目,「NAME引数」→「<APPLET>タグのNAME属性」
- p. 373,一番下のメモ,Macintosh版のNetscape Navigator 3.0b5aではCommTest.htmlが動作しないと書いてありますが,バージョン3.0製品版
では,動作が確認されました。したがって,最後の文の「(」から「)」までは削除してください。
下の2つは高橋さんからのお知らせがきっかけとなって私が気がついたものです。ありがとうございました。(96年11月25日)
- p. 164,入力例 8-1,12行目,"Hello again!" → "Hello Again!"
- p. 165,図8-1の説明(キャプション),Hello again! → Hello Again!
- p. 165,図8-1,Hello again! → Hello Again!
- p. 167,上から6行目,第1章 → 第2章
- p. 167,図8-2,Hello again! → Hello Again!
- p. 167,下から4行目,「上で紹介したの本」 → 「上で紹介した本」
- p. 169,図8-3,Hello again! → Hello Again!
- p. 171,図8-5,Hello again! → Hello Again!
- p. 179,Q&A,1問目のAの2段落目,HotJave → HotJava
以上,高橋さん,再々々度のご指摘ありがとうございました。(96年11月25日)
- p. 121,入力例 6-1,PersonalPoweredVehicle → PersonPoweredVehicle
- 同上,currentGearReae → currentGearRear
- p. 125,「入力例」 → 「入力例 6-2」
- p. 127,4段落目の2行目,「起きしいまい」→ 「起きてしまい」
- p. 129,4段落目,「6〜9行目」 → 「5〜9行目」
- p. 134,下から3段落目の下から2行目,「7行目を」 → 「5行目を」
- p. 135,まとめの□の2つめ,「クラスメソッドとインスタンスメソッドとクラスメソッド」→ 「クラスメソッドとインスタンスメソッド」
- p. 141,入力例 7-2,w/1 points → w/1 point
- p. 141,出力例,w1/points → w/1 point
- p. 147,2段落目の1行目,「PrintClassのmain()では,PrintClassオブジェクトを」 → 「PrintClassのmain()では,PrintSubClassオブジェクトを」
- p. 150,1つ目のメモの最後の行,「引数なしのコンストラクタが」→「引数なしのコンストラクタを」
以上,高橋さん,再々度のご指摘ありがとうございました。(96年11月22日)
- p. 47,paint() のリスト中,"Hello again!" → "Hello Again!"
- p. 48,HelloAgainAppletのリスト,"Hello again!" → "Hello Again!"
- p. 79,出力例の2行目,AUG → Aug ,PDT → PST
- p. 89,下から4 行目,「具体的には」→「具体的には,たとえば」
- p. 98,下から11行目,「charの7つです」→ 「char,booleanの8つです」
- p. 107,上から4行目,startoing → starting
以上,高橋さん,再度のご指摘ありがとうございました。(96年11月20日)
- p. 65,下から5行目,「x と y は int 型」 → 「x はshort型,y はint 型」
- p. 71,表3-6の一番下,演算子 「x^=y」 → 「^=」
- p. 72,表 3-7の下から2行目,「?=」 → 「/=」
以上,高橋さん,ご指摘ありがとうございました。(96年11月15日)
このページの最初に戻る 『Java言語入門』のページに戻る
- p. 271,下から5 行目,10 → MAXLINES
- p. 273,下から3行目,()currentpoint.x → currentpoint.x
- p. 274,リスト12-3,10 → MAXLINES
- p. 349,下から6行目,label == "..." → label.equals("...")
- p. 358,下から8行目,label == "OK" → label.equals("OK")
- p. 366,入力例14-3, 4行目のあとに import java.io.InputStream;を追加してください。じつは,この例はCD-ROMに入っているものと,少し違っています。この文を挿入すると本文のとおりに入力したものでも動作します(ないとコンパイルエラーになってしまいます)。
- p. 380,6行目 「アクセス」はpublic, → 「アクセス」はpublic, package,
- p. 394,メモの4行目,java.net.InetAddres → java.net.InetAddress
- p. 396,メモ,最初にある「private指定のメソッドや」は削除してください。原著の記述が間違っていたのですが,訳出の際にチェックし忘れました。すみません。
- p. 409,5行目,クラスNodeローカルな → クラスNodeはローカルな
- p. 420,リストの3行目,private Nore root; → private Node root;
- p. 455,節のタイトル Threadteser → Threadtester
- p. 485,中段,「FilteredInputStreamのサブクラス」→「FilterInputStreamのサブクラス」
- p. 486,8行目から,FilteredInputStream → FilterInputStream,FilteredOutputStream
→ FilterOutputStream
- p. 497,10行目,ByteArrat → ByteArray
- p. 502,3行目,(getNumericOutputStrem()); → (getNumericOutputStream());
- p. 504,3行目,PrintSteram → PrintStream
- p. 508,3行目,avairable → available
以上,細沼さん,たくさんのご指摘ありがとうございました。(96年11月14日)
- p. 620,11行目,「CやC++のような多次元配列がなく」を「CやC++と同様多次元配列はなく」に
- p. 620,下から7行目,「nullで終了するものでもないし」を「null文字('\0')で終了するものでもないし」に
- p. 622,3行目の後に次のメモを追加してください。
メモ
ただし,for文の初期化部と増加部には代入やインクリメント,デクリメントをカンマで区切って並べられます
- p. ix,下から3行目,この本の原著のWebページのURLはhttp://www.lne.com/Web/Java/です。
以上堂阪さんご指摘ありがとうございました。(96年11月7日)
- p. 280,6行目,evt.shiftDownは,evt.shiftDown()の誤りです。
いからしさんご指摘ありがとうございました。(96年11月6日)
- p. 128,入力例6-4の13行目,arr,lengthはarr.lengthのまちがいです(カンマでなくピリオドです)。
(96年10月31日)
このページの最初に戻る 『Java言語入門』のページに戻る
初版第2刷までの正誤表
- p. 65,4行目,「入力例2-1」は「入力例3-1」のまちがいです。
- p. 72,表3-7の右の欄の下から5行目,「NOT」は「OR」のまちがいです。以上2点押切さんご指摘ありがとうございました。(96年10月14日)
- p. 402,下から7行目,
public myFirstPackage; を
package myFirstPackage;
に直してください。
- p. 634,「JDKのインストール」の2. の3行目,「JDKというサブディレクトリができ」は
「JAVAというサブディレクトリができ」のまちがいです。以上2点,田中さんご指摘ありがとうございました。(96年10月10日)
- p. 257,上から10行目(リスト11-4),if (bgsound != null) beep.play();を,if (beep != null) beep.play();に直してください。
オリジナルのままでも動きますが,チェックとしてはbeepの値を確認すべきでしょう。浅野さんご指摘ありがとうございました。(9月29日)
- p. 254,paint()の定義を次のようになおしてください。
public void paint(Graphics g) {
if (currentimg != null) {
g.drawImage(currentimg, xpos, ypos,this);
}
}
オリジナルのままですと,currentimgがnullのときに例外が投げられてしまいます。なお,この例をNetscape(Macintosh版,Windows版)で実行すると,
最初にロードしたときに
猫がうまく表示されないようです。再ロードするときちんと動きます。Applet Viewerではうまく動きますので,Netscapeの問題と考えられます。(9月29日)
- p. 182,下から10行目,extended java.appletはextends java.appletの誤りです。(9月12日)
- p. 189,5行目,「(図9-8)」を「(図9-8,なおjava.awt.Polygonもimport
する必要があります)」と直してください。
- p. 65, 入力例2-1(ほんとうは3-1です)の16行目に } を入れてください。(9月9日)
- p. 95,「オブジェクトのコピー」の例の前のpt2とpt3はpt1とpt2の誤りです。
- p. 115,out: で始まるプログラム例の最後に※を書いてください。
- p. 148とp. 149,入力例7-8とその次のコード例の「//PrintClass2中の定義」は「//PrintSubClass2中の定義」のまちがいです。
このページの最初に戻る 『Java言語入門』のページに戻る
初版第1刷の正誤表
- p. 85の入力例4-3の4, 14, 16行目に誤りがあります。正しいリストを下に書きますのでご訂正ください。
1 public class TestString {
2
3 public static void main (String args[]) {
4 String str = "Now is the winter of our discontent";
5
6 System.out.println("The string is: " + str);
7 System.out.println("Length of this string: "
8 + str.length());
9 System.out.println("The character at position 5: "
10 + str.charAt(5));
11 System.out.println("The substring from positions 11 to 18: "
12 + str.substring(11,18));
13 System.out.println("The index of the character d: "
14 + str.indexOf('d'));
15 System.out.println("The index of the beginning of the "
16 + "substring \"winter\": "
17 + str.indexOf("winter"));
18 System.out.println("The string in upper case: "
19 + str.toUpperCase());
20 }
21 }
- p.415の図16-3とp.416の図16-4の継承を表す実線が一部抜けています。図16-3では,Object---Food---Fruit---Orangeの間にそれぞれ実線を引いてください。
図16-4では,Food---FruitとSphere---Orangeの間にそれぞれ実線を引いてください。
以上2点,松永さん再度のご指摘ありがとうございました(96年8月18日)。
- p. 33 入力例2-1の14行目。"Calling ShowATTS"は"Starting engine..."のまちがいです。松永さんご指摘ありがとうございました(96年8月16日)。
- p. X(訳者まえがき) 上から2行目,日本サンのURLが違っています。正しくは,http://www.sun.co.jp/java.jp/です。
- 付録Bの「クラス階層図」の濃い網掛けの部分が読みにくくなってしまいました。以下にあげますので,ご記入ください。原則として,濃い網掛けの部分をだけを示します。第2刷以降では直っています。
- java.applet(4列目左から2番目と3番目) -- Component
(java.awt), Container (java.awt)
- 凡例(一番上) -- public abstract class
- java.lang(上から4番目以降) -- ClassLoader,
Math, Number, Process, Runtime, SecurityManager,
...
- java.lang-erros(2列目一番下) -- VirtualMachineError
- java.io(3列目Fileの下)-- InputStream, OutputStream
- java.net(2列目1番上から下に) -- ContentHandler,...,
SocketImpl, URL, URLConnection, URLStreamHandler
- java.awt(2列目上から6番目以降) -- FontMetrics,
Graphics, Image, ..., Toolkit
(3列目) -- Component (java.awt-components), MediaEntry
(local to package), MenuComponent (java.awt-components)
- java.awt-components(2列目の2番目以降) -- Component,...,
MenuComponent,...
(3列目上から5番目)Container
- java.awt.image(2列目一番上) -- ColorModel
(3列目一番下)-- RGBImageFilter
- java.util(2列目上から3番目) -- Dictionary
このページの最初に戻る 『Java言語入門』のページに戻る
Copyright 1995-2003, Hiroyuki Musha and Marlin Arms Corp.
ご質問,ご意見,ご感想等は,
連絡用ページ からお願いいたします。