ごうぎ@TCIです。

>>>>> "Y" == Yukihiro Matsumoto <matz / caelum.co.jp> writes:
In message "[ruby-list:233] Re: ネイティブク ラスを作る"
    on 96/02/29, Yukihiro Matsumoto <matz / caelum.co.jp> writes:
    Y> |Rubyと比べるとなんですが、CやC++よりは、御手軽だと思いますよ。
    Y> |Javaは、JDKについてくるパッケージでは、アプリケーションを作
    Y> |るには、結局限界が近いので、今色々とパッケージが出て来てます
    Y> |ね。native拡張したものも、かなりあります。これが、sunの意図
    Y> |した所かどうかはわかりませんが。 
    Y> あ,そうなんですか? でもnative拡張したものはappletにはできな
    Y> いですよね.native拡張の動的ロードとかあるんですか?
appletにはどうなんでしょうか? 時間が出来たら、やってみます。

class Foo {
	static {
		try {
			System.loadLibrary( "Foolib" );
		} catch ( UnsatisfiedLinkError e) {
			System.out.println( "Sorry, can't find ");
			System.exit(-1);
		}
	}
	protected native boolean open();
	protected native boolean close();
}

という感じで、書いておくようです。こうすると、クラスを使う時
にFoolib.soがロードされます。本当に動的にロードしてるかどう
かは、確認してないですが.. 
http://www.meta.cgl.uwaterloo.ca/SourceCodeAndDemos/OpenGL4java.html
にOpenGLのJavaクラスが公開されています。ネイティブコード等す
べて公開されているので、Javaでの拡張方法の参考になるのではと
思います。

    Y> ただし,「自発的には」決してC++を選ばないでしょう.
気持はわかるように思います。わたしもC++の性で病んでいます。

--
gougi / caelum.co.jp (Shigeru Gougi)