2008/11/22

netbeans-6.5を試してみる

3連休だし、なんとなく出たばかりのNetBeans 6.5をUbuntu 8.04で試してみます。

まずは文字化けの対応

たぶん気をつけるのは、最新版のJDK 6を自力で展開して使っている場合にUbuntu 8.04上でそのまま実行すると日本語フォントが正しく表示されないという点です。 apt-getでsun-java6-jdkパッケージを導入している場合には、文字化けの問題はなくNetBeansのインストーラーが"/usr/lib/jvm/java-6-sun"をJDKのトップディレクトリとして認識してくれます。導入していなければバージョンは古いですが、導入してしまいましょう。

$ sudo apt-get install sun-java6-jdk sun-java6-fonts
インストーラーは正しく動きますが、この中で通常使用するJDKとしてダウンロードした最新版のJDK 6のトップディレクトリを指定すると、~/netbeans-6.5/bin/netbeansを実行した時に文字化けしてしまうという現象に遭遇します。

Javaでのフォントの指定は、jre/lib/fontconfig.propertiesにあります。 今回はUbuntuのパッケージに含まれる/etc/java-6-sun/fontconfig.propertiesファイルを流用させてもらいます。 自分で最新版のJDK 6を/usr/java/1.6.0ディレクトリに入れているので、次のような作業をしました。 もしまだ"sun-java6-jdk"パッケージを導入していない場合には、導入しましょう。

$ cd /usr/java/1.6.0/jre/lib
$ sudo rm fontconfig.properties
$ sudo ln -s /etc/java-6-sun/fontconfig.properties .
これで"~/netbeans-6.5/bin/netbeans"を実行すると、綺麗な日本語でIDEが表示されました。

続いてC++サンプルの高速道路シミュレータを試す

NetBeansはダウンロードする時に、一番サイズが大きい全部入っているものを選択したので、JRuby開発狙いでしたが、C++のサンプルを実行してみようと思いました。 転職する時にはC++でプログラムを書くはずだったのが、そんな事はまだ一度もしていなくて、けれどいつか必要になる時のために少し慣れておこうかなと思ったのでした。

さて、メニューから”新規プロジェクト”を選択すると、カテゴリ選択できますが、”サンプル”をみると各カテゴリに割と具体的な名前が並んでいます。 なんとなく”高速道路シミュレータ”を実行させてみようと考えました。 さっそく選択して、まずはビルドしてみます。 しかしエラーが…。

callbacks.cc:168: error: cast from ‘void*’ to ‘int’ loses precision
callbacks.ccファイルをみてみると、C++プログラムなのに普通に"gpointer user_data"で宣言されている変数がint型にキャスト((int) usre_data)されています。 うーん、README.txtファイルにはUbuntu 7.10で確認済みとあるので、g++のバージョンが違う事が原因のようです。O'REILLYのC++ランゲージクイックリファレンスによれば、C++では従来のC言語から引き継いだキャストの他にプログラマが意図を伝えるためのキャスト方法があります。
//int zone = ((int) user_data) - 1;
    int zone = reinterpret_cast<int&>(user_data) - 1;
これとrandx()のところを同様に修正すると、無事にコンパイルが通り、シミュレータを動かす事ができました。

0 件のコメント: