「iアプリからはじめよう!カンタンJavaプログラミング」追補情報 |
※…な、長い。タイトルが。
ここは、拙著のJava入門書「iアプリからはじめよう!カンタンJavaプログラミング」(ソシム、384頁CD-ROM付、2680円)に関するコーナーです。現在、初版の見直し作業をしていますが、校正情報やよくある質問の答えなどをここでまとめて掲載します。
また、記述間違い、校正漏れ、「これが全然わかんない!」といったことがあれば、どうぞ掌田津耶乃(tuyano@mac.com)まで御連絡ください。ここで補足していきたいと思います。
★バグ・校正情報★ |
※ここでは、ソースコードや内容に関する記述間違い、校正ミスなどについて整理しておく予定です。
メソッド名の後につく()部分として「引数(パラメータ)」とし、引数という表現を優先していますが、本書の後半ではパラメータという表現を優先しています。「この2つは違うもの?」と誤解を与えてしまったかも知れません。これらは全て同じものですので、以後の改訂にて全て「パラメータ」という表現で統一する予定です。
(誤)変数の仕様宣言と値の代入の仕方 → (正)変数の使用宣言と値の代入の仕方
(誤)コンパイル→プリベリファイ→ADFファイルの作成→JARファイルの作成
↓
(正)コンパイル→プリベリファイ→JARファイルの作成→ADFファイルの作成
ADFファイルは、作成したJARファイルの修正日とファイルサイズなどを記述しますので、先にJARファイルを作らないと作成できません。当たり前ですね。
(誤)x = 0; → (正)y = 0;
リストの終わりにある変数代入部分で、x = 0;が2つ続いています。これは、片方はy = 0;の間違いです。
※今のところ、その他に重大な記述間違いなどは見つかっていません。もし、何か発見したら御一報くださいませ。
★FAQコーナー★ |
答え)最近、このように「javacでコンパイルはできるのに、javaコマンドで実行しようとすると動かない」という人が多いようです。その多くは環境変数の問題であるようです。Javaでは、classpathという環境変数を使ってライブラリのあるパスなどを設定しているのですが、最近、いくつかのアプリケーションでは、全く同じ名前の環境変数を設定するものなどがあり、これが原因でトラブルを起こすようなのです。
コンパイルできるけど実行に失敗するという場合には、まずclasspathという環境変数が使われているかどうか確認して下さい。そして既にこの環境変数があったら、その設定値にカレントディレクトリ(.)とJDKのLibフォルダのパスを追加してみて下さい。(例えば、既にあるclasspathに設定している値の末尾に「;.;c:\jdk131\lib」という具合に追記しておく)
答え)これは、JDKが動かない、ということでしょうか。通常、JDK 1.3.1をインストールするとJavaのプログラムを実行するJREが組み込まれ、Javaプログラムの実行自体は簡単に行なえるようになります。が、コンパイルにはpathの設定が必要になります。本書29ページをよく読んでpathの設定を確認して下さい。
答え) もちろん、それでも大丈夫です。JDKのインストールで、パスについて説明をしてありますが、基本的にWindows 98/Me向けとしてまとめて記述してあるので、両方で使えるAutoexec.batの書き換えという方法で紹介してあります。が、Meであればシステム設定を使ってももちろん問題はありません。要するに、コマンド入力時にきちんとjava関係のコマンドが認識できれば良いのです。
答え) XPは、基本的にWindows 2000系ですから、2000と同じ方法で設定します。まず「システム」コントロールパネルを開き、「詳細設定」タブを選んで下さい。ここに「環境変数」というボタンがあり、これを押すと環境変数設定ダイアログが現れます。ここで、下のシステム環境変数という一覧に「PATH」という項目があるはずですので探して下さい。そしてこれを選択し、「編集」ボタンを押して値を編集します。
設定する値は、既に設定されているテキストの一番末尾に、JDKのbinディレクトリのパスをセミコロンをつけて追記します。例えばCドライブに「jdk131_01」というフォルダでJDKをインストールしてあるなら「;C:\jdk131_01\bin」というように、既にある値の後に追記するわけです。もしなければ新規にシステム環境変数を追加し、変数名をPath、変数値に冒頭のセミコロンをつけずに「C:\jdk131_01\bin」というような形でパスを設定します。
ただし! 書籍に付属するJDK 1.3.1は、Windows XP対応とうたってはいません。つまり、XPは動作保証外なのです。その点を理解して使って下さい。個人的には、開発関係は一通り対応されるまでXPを避けてWindows
2000などで使った方がいいと思います。
答え)CD-ROMに収録しているのはWindows向けのものですので、Macではそのままでは動きません。MacでもJavaやiアプリ環境を動かすことは可能ですが、それには「Mac OS Xであること」が条件です。従来のMac OSではJDK 1.3が動かないためです。Mac OS Xでは、i-JADE Liteなどが動きますので、これを利用してiアプリのコードを書いたりエミュレートしたりできます。が、本書は基本的にWindowsユーザーを対象としており、それ以外のOSは対象としていませんので、Windows以外はサポートはしません。そこから先は各自でいろいろ試してみてください。
答え)これは、あまりにいろいろと要因が考えられ過ぎて一口では御返事できないのですが…。最初に「どこまでできていて、どこで問題が起きているか」を把握しておきましょう。
まず、「コンパイルできるがエミュレータで動かない」という場合。これは、ADFの設定ミスであることが多いようです。またJavaの開発環境を何かインストールしてある場合、そちらに組み込まれているJDKでエミュレータが動いてしまい、それが原因で問題が起こるということも考えられます。
「コンパイルできてエミュレータでも問題なく動いているが、実記で動かない」という場合には、いくつかの点に注意して下さい。まず、157ページにあるようにキー入力モードの設定。こういう「なぜか特定の定数を設定するとエラーになる」ということが機種によってあるようです。それから、SONYの初期503iなど特定の機種を使っているために問題が起きてないか。このあたりを確認したほうがいいでしょう。また、グラフィックやサウンドを使っている際に、「10K以上になっている」ことに気づかず、うまく動かない!と悩むことはけっこうあるみたいです。その他、スクラッチパッドやHTTPConnectionを使っているのにADFの設定を忘れていた、なんてこともよくありますよ。
「コンパイルまでいかない!」というのは、それはもうコードやファイル名の記述間違いなどの問題でしょう。これは、とにかくひたすら悩んで下さい、としかいいようがありませんが…。
答え)一応、本書では最後にMIDPを使ったケータイ向けJavaプログラミングについて書いてありますが、これは「こういう具合に作ります」という簡単な案内程度のものです。iアプリの基本は既にわかっているはずですから、それと比較して「TextBoxはMIDPではこうなってるよ」「ソフトキーのコマンドはこうなるよ」ということをざっと紹介し、「こういう違いがあるけれど、それらを飲み込めば作れるよ」ということを伝えたかったわけです。従って、この章を読むだけでMIDPのJavaアプリが完璧に作れるようになるわけではありません。あくまで「iアプリの知識を元に、MIDPの世界を覗いてみる」という導入部分だけですので、別途勉強しないとダメですよ。