かねてより作ってみたいプログラムがあって、そろそろ、試作を開始しようと思いたちました。
しかし、何で開発していくかで、迷いが。
webベースではないので、いつもならC++を選択するところですが、WindowsでもBSDでも動くようにしたいし、GUIをつけるとなると、かなり大変になってしまいそう。
とグダグダ悩んだ結果、決めました。・・この際だから、Javaでプログラムを作ってみよう!です。
とは言っても、Javaでの開発経験はありません。周辺知識もほとんどありません。かえって、目的から遠ざかってる気もしますが、決めたからには、まず調査です。
少しネットで調べてみると、JDKが必要なことや、JAVAの開発環境としては、Eclipseを利用するのが便利そうだということなどが分かりました。
■Eclipse 起動画面

Eclipseとは、オープンソースの統合開発環境で、もともとはIBMが開発を開始したものです。現在はオープンソースコミュニティのEclipseプロジェクト(http://www.eclipse.org/)にて、開発が続けられています。
なるほど どなるほど、でも、取りあえずやってみないと分かんないな(笑
というわけで、早速、ノートPCで稼動中のNetBSDに環境構築開始です。
-----------------
インストール手順
-----------------
■pkgsrc
NetBSDでは、以下のようにJava/Eclipseのpkgsrcが用意されています。
■JAVA SDK /usr/pkgsrc/lang/sun-jdk15
■eclipse /usr/pkgsrc/devel/eclipse
これを利用してインストールすれば、簡単。なはずです。
■Java環境のインストール
/pkgsrc/lang/sun-jdk15をインストールするためには、あらかじめsunのサイトからJDKとJREのLinux self-extracting file版をダウンロードしておく必要があります。
ちなみに、2/24時点での最新版は以下の通りです。
jdk-1_5_0_01-linux-i586.bin
jre-1_5_0_01-linux-i586.bin
ダウンロードした上記の2ファイルは, /usr/pkgsrc/distfilesディレクトリに置いておきます。
あとは、 /usr/pkgsrc/lang/sun-jdk15に移動し、お決まりの呪文([# make install)。
/usr/pkgsrc/lang/sun-jdk15は、linux版のものです。これを動作させるためには、カーネルが以下のオプション付きで作成されている必要があります。
option COMPAT_LINUX
また、/etc/fstab に以下の行を追加しておきます。
procfs /emul/linux/proc procfs rw,linux
■Eclipseのインストール
まず、/etc/mk.confに ACCEPTABLE_LICENSES+=eclipse-licenseという1行を追加しておきます。
そして、 /usr/pkgsrc/devel/eclipseに移動し、お決まりの呪文([# make install)。
とまあ、ここまでは順調に行ったのですが・・
■Javaの起動確認で問題発生
Java起動確認をするために、バージョンを表示させてみます。すると、以下のようなエラーになってしまいました。
# /usr/pkg/java/sun-1.5/bin/java -version
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.
んー。どうやら、「heap領域のサイズが足りなくて、JavaVMが作れないよ」と言っているらしいです。
是非、広げてあげなくては・・どうやって?
で、色々調べたり、人から教えてもらったりした結果。以下の方法で解決できることが判明しました。
※協力してくれた方々、どうもありがとう
■データサイズ制限を調整して問題解決
まずは、limitコマンドで、現在の制限値を見てみましょう。
1プロセスに許されたデータサイズの上限を広げるには、以下の表示例で、datasize 131072 kbytesとなっている部分を変更することになります。
% limit
cputime unlimited
filesize unlimited
datasize 131072 kbytes
stacksize 2048 kbytes
coredumpsize unlimited
memoryuse 505504 kbytes
descriptors 64
memorylocked 168501 kbytes
maxproc 160
この値を調整するには、いくつかの方法があるらしいのですが、一番簡単なのは、ホームディレクトリの.cshrcで、データサイズのlimitを指定する方法です。
具体的には、ホームディレクトリの.cshrcに以下の行を追加します。(ここでは、262144という数値にしているのは、JavaVMの起動には256Mのメモリが必要だという記述をどこかで見かけたためです)
例:
limit datasize 262144
#source .cshrc とやって、変更した.cshrcを有効にしたあと、再び、limitコマンドで設定値を確認てみます。
% limit
cputime unlimited
filesize unlimited
datasize 262144 kbytes
stacksize 2048 kbytes
coredumpsize unlimited
memoryuse 505504 kbytes
descriptors 64
memorylocked 168501 kbytes
maxproc 160
変更できてますね。さて、これでもう一度Javaの起動確認をしてみましょう。
# /usr/pkg/java/sun-1.5/bin/java -version
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_01-b08)
Java HotSpot(TM) Client VM (build 1.5.0_01-b08, mixed, mode, sharing)
limitコマンドについて・・
プロセスへの各種の制限を設定するコマンドです。
csh・tcsh の内部コマンドで、limit で設定できる制限値には、一般ユーザが変更できる(普通の)リミットと、root しか変更できないハードリミットがあります。
■Eclipseの起動
Javaが起動できるようになったところで、いよいよ Eclipseを起動してみます。
※Eclipseを起動するためには、JavaにPATHが通っていなくてはいけないので、PATHの設定を忘れずに♪
%/usr/pkg/eclipse -data ~/eclipse/workspase
※-dataオプションは、ワークスペースの場所を指定するオプションです。上記例では、自分のホーム配下にワークスペースができるように指定しています。
思いのほか、手こずってしまいましたが、やっとEclipseが起動してJavaのプログラムが開発できそうな環境が整いました。これから、Javaのお勉強をはじめてみます。やっぱし、まずは、"Hello World"かな