7月 14

GUIのないサーバで、javaのプログラムをデバッグしていた時のおはなし。
Eclipseしか使ったことのない方には馴染みがないと思いますが、javaにはjdbというgdbみたいなデバッガがあります。
jdbは、画面のない環境でも(gdbを使い慣れた人なら)お手軽にデバッグできるツールなのですが、あるプログラムをデバッグしようとしたら

Exception in thread "JDI Internal Event Handler"
java.lang.IllegalArgumentException: Invalid JNI signature character ';'
        at com.sun.tools.jdi.JNITypeParser.nextTypeName(JNITypeParser.java:236)
        at com.sun.tools.jdi.JNITypeParser.typeNameList(JNITypeParser.java:140)

のようなExceptionが出てデバッグができませんでした。
jdbを使わなければ、普通に動きます。jdbでデバッグしようとするとこのようにExceptionが出ます。
ちなみに、Javaのバージョンは、1.6.0_18(OpenJDK)。OSは、Ubuntu 10.04です。
続きを読む »

4月 30

私は基本的にゲームはしないのですが、最近子供にせがまれて自分のケータイに入っているパズルゲームをしています。
子供はまだ小さいのでパズルを解くことはできないのですが、キャラクターの絵と音楽を楽しんでいるようです。一方、私はもっぱらパズルを解いています。
考えてもうまくすすまないので、プログラムを書いて解いてみました。(ついでに、ゲーム本体もまねっこしてみました。)
続きを読む »

3月 08

すでに旧聞に属するネタですが、話題のGoogle DevFestのQuizの私の回答(に使ったプログラム)を晒してみます。間違いなどのご指摘があればコメントをお願いします。
ちなみに、こちらには他の方の回答(プログラム)がまとめられています。
いろんな解き方がありますね。
続きを読む »

11月 16

Eclipse 3.5(Pleiades All in One 3.5.1.20090930でjdk1.6.0_06を使用)でのお話。
Javaプロジェクトを作って、sun.misc.BASE64Encoderを使おうとしたらエラーと表示されました。
メッセージを見ると、「アクセス制限: 型 BASE64Encoder は必須ライブラリー (Javaのインストールディレクトリ)\lib\rt.jar で制限されているためアクセスできません」とのこと。
検索しても対処法がすぐにわからなかったので、メモしておきます。
続きを読む »

7月 10

JNIを使ってCなどのnativeプロセスからJavaVMを起動し、さらにそのJavaVMからnativeメソッドをコールバックさせる方法です。Webで調べた際に、意外と情報が見つからなかったのでメモ。

結論から言ってしまうと、RegisterNativesというJNI関数を使用します。この関数は、jclassとJNINativeMethod構造体の配列を引数に取り、Java側のnativeメソッド宣言とnative側のメソッド本体を動的に結びつけます。

具体的な使い方は、以下のサンプルコードを参考にしてください。
続きを読む »

replica handbags,louis vuitton handbags,chanel handbags,gucci handbags,designer replica handbags,replica louis vuitton handbags,fake designer handbags,replica designer handbags,knock off designer handbags,replica designer bags,replica fendi handbags,Louis Vuitton,gucci handbags,chanel bags.