質問者さんの環境がよくわからない点がありますが、UbuntuでJNI(Java Native Interface)を使う場合のインストールディレクトリの調べ方という点では共通性の高い話だと思うので自分がわかる範囲でコメントします。
mecabをJavaから利用する場合JNIを通じて利用するようなので、C/C++のコンパイルの際にはJavaSE/OpenJDKが提供するJNI用のヘッダー(jni.h)の場所を指定する必要があります。
ヘッダーはOracleのJavaSEまたはOpenJDKをインストールした際のjava関連のファイル(binやlibディレクトリーがあるディレクトリと同一階層)のincludeディレクトリーにあります。
その場所の調べ方ですが、例えば
bash
1$ which javac
2/usr/lib/jvm/java-8-openjdk/bin/javac
などと表示されるなら
INCLUDE=/usr/lib/jvm/java-i-openjdk/include
としてください。
しかしalternativesを導入している場合/usr/binの下にシンボリックリンクができていますのでwhichだけでは場所がわからないかも知れません。その場合はls -l
を用いて本当の場所がわかるまでシンボリックリンクを辿ってみてください。
例:
bash
1$ which javac
2/usr/bin/javac
3$ ls -l /usr/bin/javac
4lrwxrwxrwx 1 root root 23 12月 29 2016 /usr/bin/javac -> /etc/alternatives/javac
5$ ls -l /etc/alternatives/javac
6lrwxrwxrwx 1 root root 43 5月 8 2017 /etc/alternatives/javac -> /usr/lib/jvm/java-8-openjdk-amd64/bin/javac
7$ ls -l /usr/lib/jvm/java-8-openjdk-amd64/bin/javac
8-rwxr-xr-x 1 root root 6504 10月 28 07:51 /usr/lib/jvm/java-8-openjdk-amd64/bin/javac
最後の結果はシンボリックリンクではなく実体の場所ですのでここが実際のインストール場所になります。さてlinuxでJNIのコンパイルをする際に例えば上の例(open-jdk 8)の環境では以下の2つのincludeディレクトリーをC/C++コンパイラーに教える必要があります。
/usr/lib/jvm/java-8-openjdk-amd64/include
/usr/lib/jvm/java-8-openjdk-amd64/include/linux
mecab用のmakefileをみていないのではっきり分かりませんが、
INCLUDE = /usr/lib/jvm/java-8-openjdk-amd64/include
と指定すれば両方を指定したことになるのかな・・・makefileの中に
-I $(INCLUDE) -I $(INCluDE)/linux
などと書いてあればそうだと思います。
ひょっとして環境変数JAVA_HOMEが設定されているならそちらを見るのが早いという話もあります。そうなっているならmakefile上ではINCLUDE = $(JAVA_HOME)/include
などと書けます。