Xvfbの出力を、xwudを改造して動画で見られるようにした

Xvfbというコマンドをご存知でしょうか?
通常、Xサーバはディスプレイに表示するものですが、Xvfbはディスプレイに表示を行わず、メモリ上に仮想的に表示を行うXサーバです。
Xvfbの、vは仮想(Virtual)、fbはフレームバッファ(Frame Buffer)というわけです。画面を持たないサーバマシンで画像を扱うときに使われることがあります。
ちなみに、そもそも「Xサーバとは?」という方はこちらを参考にしてください。
Continue reading →

JNIで起動したJavaVMからnativeメソッドをコールバック

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

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

具体的な使い方は、以下のサンプルコードを参考にしてください。
Continue reading →