ぷ~ろぐぷ~ろぐ身辺雑記、アニメ・マンガ、Jリーグ(特に新潟)のこととか。その2:ネイティブコードからJavaメソッドを呼び出す前記事で参考にした本のネイティブコードからJavaのメソッドを呼ぶサンプルコードがJavaからネイティブコードを呼んでそこからさらにJavaメソッドを呼ぶというなんとも妙もので、実際に動かす例としてはイマイチと思った。参考にならなそうなので、WEBでJNI関係の記事を検索して主に参考ページ1を参考にした。いうか、ほぼそのまま。C++はわからないのでCでコンパイルできるようにネイティブのコードを少し変えた。前記事と同じくWindows上で実施。ボーランドC++コンパイラを使用。作業フォルダはC:\work。下記のフォルダ、ファイルのツリー表示で括弧で囲ってあるファイルはツール(javac、javah、bcc32、implib)が出力するファイル。実行Javaコードの作成Javaのクラス、メソッドはネイティブから呼び出すからといって特別なことは特にない。staticメソッドの方がクラスを生成しなくて言い分簡単なのでこの例ではstaticメソッドにした。参考ページ1のJavaコードとの違いは、パッケージをデフォルトパッケージから適当に作ったパッケージ(jp.jnisample)に変えただけ。World";}}作業フォルダでjavacコマンドを実行しコードをコンパイルする。ボーランドC++コンパイラ付属のimplibというツールを使ってlibファイルを作成しそれを使わないといけないそうだ。いうlibファイルを作った。Corporationネイティブコードを作成し実行ファイルの作成はじめの方に書いたが、参考ページ1のネイティブのコードはC++で書かれていて、自分はC++がわからない。よってCのコードとしてコンパイルできるように、ファイル名の拡張子をcに変更し、内容にも若干の修正をした。ネイティブコードの修正点は修正点は以下。変数宣言の場所を変えた。C++ではどこでも変数宣言できるが、Cはブロックの先頭で宣言しなければならない。