質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

91.36%

  • Java

    10452questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • Mecab

    100questions

    Mecabは、オープンソースの形態素解析エンジンです。 言語、辞書、コーパスに依存しない汎用的な設計を基本方針としています。 Mecabの由来は、開発者の好物である和布蕪(めかぶ)から名づけられました。

java にmecabを入れて使いたい!

解決済

回答 1

投稿 2017/12/03 16:35 ・編集 2017/12/03 17:04

  • 評価
  • クリップ 0
  • VIEW 52

15sc076

score 3

Javaにmecabを入れて使いたいです。
mecabをインストールまではできました。
そのあとのMakefileの6行目を書き換える必要がある、と言われてどう書き換えればいいのか分からなくなりました。
これを書き換えたら「libMeCab.so」「MeCab.jar」が生成できるそうです。
環境はubuntu です。

TARGET=MeCab
JAVAC=javac
JAVA=java
JAR=jar
CXX=c++
INCLUDE=/usr/lib/jvm/java-6-openjdk/include

PACKAGE=org/chasen/mecab
.....
---以下略---

includeのところを書き換えるらしいのですが何に書き換えればいいのでしょうか?

追記、
JVMについて調べてみました。
端末で java -version  と打つと

java version "1.7.0_79"
OpenJDK Runtime Environment (IcedTea 2.5.5)(7u79-2.5.5-0ubuntu0.14.04.2)
OpenJDK 64-Bit server VM(build 24.79-b02,mixed mode)

と出てきました。
これでわかりますかね

http://javazuki.com/articles/mecab-install.html
これを見ながらインストールしました。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • KSwordOfHaste

    2017/12/03 16:56

    http://taku910.github.io/mecab/#install-unix」をみると./configureとすれば環境を調べてmakefileを自動設定してくれるような気がしますがどのようにインストールしたか書いた方が良いのでは?

    キャンセル

  • quiqui

    2017/12/03 17:09

    Ubuntu14.04 に aptで OpenJDK をインストールしたっぽいですね。Ubuntuだとパッケージでmecabが提供されていますから、mecabのインストールをどうやったかも書かれてないですね。

    キャンセル

  • 15sc076

    2017/12/03 17:12

    mecabのインストールは実はとても手間取ってしまい色んなサイトを見て色々入力しまくっていたらいつのまにかインストール出来ていたのでどうやって入れれたのかわからないです、、

    キャンセル

回答 1

checkベストアンサー

+1

質問者さんの環境がよくわからない点がありますが、UbuntuでJNI(Java Native Interface)を使う場合のインストールディレクトリの調べ方という点では共通性の高い話だと思うので自分がわかる範囲でコメントします。


mecabをJavaから利用する場合JNIを通じて利用するようなので、C/C++のコンパイルの際にはJavaSE/OpenJDKが提供するJNI用のヘッダー(jni.h)の場所を指定する必要があります。
ヘッダーはOracleのJavaSEまたはOpenJDKをインストールした際のjava関連のファイル(binやlibディレクトリーがあるディレクトリと同一階層)のincludeディレクトリーにあります。

その場所の調べ方ですが、例えば

$ which javac
/usr/lib/jvm/java-8-openjdk/bin/javac

などと表示されるなら
INCLUDE=/usr/lib/jvm/java-i-openjdk/include
としてください。

しかしalternativesを導入している場合/usr/binの下にシンボリックリンクができていますのでwhichだけでは場所がわからないかも知れません。その場合はls -lを用いて本当の場所がわかるまでシンボリックリンクを辿ってみてください。

例:

$ which javac
/usr/bin/javac
$ ls -l /usr/bin/javac
lrwxrwxrwx 1 root root 23 12月 29  2016 /usr/bin/javac -> /etc/alternatives/javac
$ ls -l /etc/alternatives/javac
lrwxrwxrwx 1 root root 43  5月  8  2017 /etc/alternatives/javac -> /usr/lib/jvm/java-8-openjdk-amd64/bin/javac
$ ls -l /usr/lib/jvm/java-8-openjdk-amd64/bin/javac
-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などと書けます。

投稿 2017/12/03 17:36

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/12/04 14:33

    全然ちゃんとした環境の説明ができなかったのに丁寧な説明ありがとうございました。
    おかげで無事MeCab.jarとlibMeCab.smを生成することが出来ました!

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

ただいまの回答率

91.36%

関連した質問

同じタグがついた質問を見る

  • Java

    10452questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • Mecab

    100questions

    Mecabは、オープンソースの形態素解析エンジンです。 言語、辞書、コーパスに依存しない汎用的な設計を基本方針としています。 Mecabの由来は、開発者の好物である和布蕪(めかぶ)から名づけられました。