S-JIS[2006-06-18] 変更履歴

Ant:javah

JNI(Java Native Interface)の為のC言語/C++のヘッダーファイルを作成するオプションタスク。
(org.apache.tools.ant.taskdefs.optional.Javah extends Task

最新javah


属性

属性 説明 javahコマンドのオプション
classpath 生成するクラスがあるディレクトリ -classpath ディレクトリ
class 生成元となるクラス名(ファイル名ではない) クラス名
destdir 生成先のディレクトリ( -d ディレクトリ
outputfile 生成先ファイル名( -o ファイル名

生成先のディレクトリファイル名は、どちらかしか宣言できない。


ディレクトリ構造が以下のようになっていることを仮定(要するにeclipseで普通に作った構造 で、パッケージ無し)。

C:\workspace3\JniJikken>tree
フォルダ パスの一覧
C:.
├─bin		…ここにbuild.xml
├─classes
└─src

build.xmlはbinの下にあり、classes直下にあるJniJikken.classを元にヘッダーファイルを生成する。
生成するヘッダーファイルは、VC++のJniJikkenプロジェクトのディレクトリに作成するものとする。

build.xml:

<?xml version="1.0" encoding="Shift_JIS"?>
<project name="jni_jikken" default="makeh" basedir=".." >
	<property name="h_dir" location="C:\hishidama\vcpp\JniJikken"/>

	<target name="makeh">
		<javah classpath="classes" class="JniJikken" destdir="${h_dir}"/>
	</target>
</project>

もし複数のクラスからヘッダーファイルを生成したい場合は、以下の様に書ける。

	<javah classpath="classes" outputfile="${h_dir}/JniJikken.h"">
		<class name="JniJikken"/>
		<class name="Hoge"/>
		…
	</javah>

上と同じ例をWindowsのバッチファイルにすると、以下の様になる。

makeh.bat:

set WORKSPACE=C:\workspace3
set H_DIR=C:\hishidama\vcpp\JniJikken

pushd %WORKSPACE%\JniJikken
javah -classpath classes -d %H_DIR% JniJikken
popd
pause

Ant目次へ戻る / 技術メモへ戻る
メールの送信先:ひしだま