Eclipse 3.5(Pleiades All in One 3.5.1.20090930でjdk1.6.0_06を使用)でのお話。
Javaプロジェクトを作って、sun.misc.BASE64Encoderを使おうとしたらエラーと表示されました。
メッセージを見ると、「アクセス制限: 型 BASE64Encoder は必須ライブラリー (Javaのインストールディレクトリ)\lib\rt.jar で制限されているためアクセスできません」とのこと。
検索しても対処法がすぐにわからなかったので、メモしておきます。
Continue reading →
Tag / Java
JNIで起動したJavaVMからnativeメソッドをコールバック
JNIを使ってCなどのnativeプロセスからJavaVMを起動し、さらにそのJavaVMからnativeメソッドをコールバックさせる方法です。Webで調べた際に、意外と情報が見つからなかったのでメモ。
結論から言ってしまうと、RegisterNativesというJNI関数を使用します。この関数は、jclassとJNINativeMethod構造体の配列を引数に取り、Java側のnativeメソッド宣言とnative側のメソッド本体を動的に結びつけます。
具体的な使い方は、以下のサンプルコードを参考にしてください。
Continue reading →
JNIでenumを扱う
Java 5.0から導入されたJavaのenumですが、JNIを経由したnativeメソッド内ではどのように扱えばよいのでしょうか?これについては、JNI仕様にも明記されていないようです。必要があったので、ちょっと調べてみました。
Continue reading →