Java Eclipse ワンポイントレッスン〜プロジェクトのMeven化〜

通常のJavaプロジェクトをMevenプロジェクト化します

プロジェクトを右クリック→Convert  to Meven Projectをクリックします。

お疲れ様でした。

[rakuten ids="ocha-no-budouen:10000081"]

Java Eclipse ワンポイントレッスン〜ライブラリの追加〜

ライブラリの追加=JARファイルの追加の認識です。

これは、LWJGLをライブラリに追加した時の動画です。

直接ビルドパスを追加してやります。JSONライブラリのダウンロードします。

作成したプロジェクトがMavenではないのでJARをビルドパスに追加します。

今回はサンプルとして「json-path-2.1.0.jar」を追加します。

1:プロジェクトを右クリック→プロパティをクリック

2:プロジェクトのプロパティを開く

3:ビルドパスを選択→外部JARを追加(Add External JARs)ボタンをクリック



4:追加するJARファイルを選択する

5:プロジェクトに追加されたことを確認

jsonで遊ぼう!さらに体も鍛える(笑)

関連ページ一覧

Eclipse セットアップ

  1. Java Install Eclipse〜開発ツールのインストール〜
  2. TensorFlow C++環境〜EclipseCDTをインストール〜
  3. Setup OpenGL with JavaJOGLを使う準備 for Eclipse
  4. Eclipse Meven 開発手順〜プロジェクトの作成〜
  5. Java OpenCV 環境セットアップ(on Mac)
  6. Eclipse SceneBuilderを追加する
  7. JavaFX SceneBuilder EclipseSceneBuilder連携~

Java Basic一覧

  1. Java Basic Level 1 〜Hello Java〜
  2. Java Basic Level2 〜Arithmetic Calculate〜
  3. Java Basic Level3 〜About String class〜
  4. Java Basic Level 4〜Boolean〜
  5. Java Basic Level 5〜If Statement〜
  6. Java Basic Summary from Level1 to 5
  7. Java Basic Level 6 〜Traning of If statement〜
  8. Java Basic Level8 〜How to use for statement〜
  9. Java Basic Level 8.5 〜Array〜
  10. Java Basic Level 9〜Training of for statement〜
  11. Java Basic Level 10 〜While statement 〜
  12. Java Basic Swing〜オブジェクト指向〜
  13. Java Basic Swing Level 2〜オブジェクト指向2〜
  14. サンプル実装〜コンソールゲーム〜
  15. Java Basic インターフェース・抽象クラスの作り方
  16. Java Basic クラスとは〜Step2_1〜
  17. Java Basic JUnit 〜テストスイートの作り方〜

Git関連

  1. Java Git clone in Eclipse 〜サンプルの取得〜
  2. Eclipse Gitリポジトリの取得 GitからソースをPullしよう〜
  3. IntelliJ IDEA GitGitリポジトリからクローン〜

Java MeCab 〜Javaで品詞分解してみよう〜

イントロダクション

前回、PythonでMeCabを使える様にセットアップしました。今回はJavaでも使える様にします。

MeCab Javaから使うには?

ここのページから最新のファイルをダウンロードします。

日付の部分が最新のものを洗濯してダウンロードしてください。

そして展開したら、辞書をUTF-8でビルドします。

などなど。。。使用方法があるのですが「Javaから直接コマンド叩いた方が早くね?」と思いましたので「Runtime.exe(コマンド)」でいこうと思います。作成したコードは以下になります。

public class AutoBlogPoster {
	public static void main(String[] args) throws Exception{
		String[] cmd = {"/bin/sh", "-c", "echo マイクロソフトバンク | /usr/local/mecab/bin/mecab -O simple"};
		Process process = Runtime.getRuntime().exec(cmd);
		BufferedReader buf = new BufferedReader(new InputStreamReader(process.getInputStream()));
		String line = "";
		while( (line = buf.readLine()) != null) {
			System.out.println(line);
		}
	}
}

[rakuten ids="ayshtr-store:10000038"]


Java ワンポイントレッスン〜Javaからコマンドを叩く〜

コンソール画面、ターミナルから「echo "タイガーマスク" | echo ": 伊達直人"」とコマンドを叩くのと同様なことをJavaで行う

public static void main(String[] args) throws Exception{
    String[] cmd = {"/bin/sh", "-c", ¥"タイガーマスク¥" | echo ¥": 伊達直人¥""};
    Process process = Runtime.getRuntime().exec(cmd);
    BufferedReader buf = new BufferedReader(new InputStreamReader(process.getInputStream()));
    String line = "";
    while( (line = buf.readLine()) != null) {
        System.out.println(line);
    }
}

こんな感じに、シェル経由で実行してやればオッケー

コマンドを実行するというところで、「こんな感じ!」という動画がありますので、よかったらどうぞ。

コマンド使用時の注意

ただし、ユーザー指定の環境変数を使用しているコマンドはパスを指定してやらないと動かない。。。

「echo」コマンドは動くけど、新たにインストールした「mecab」コマンドは動かない・・・

mecabにパスが通っていないので動きません・・・
チャンチャン(笑)

関連ページ一覧

Eclipse セットアップ

  1. Java Install Eclipse〜開発ツールのインストール〜
  2. TensorFlow C++環境〜EclipseCDTをインストール〜
  3. Setup OpenGL with JavaJOGLを使う準備 for Eclipse
  4. Eclipse Meven 開発手順〜プロジェクトの作成〜
  5. Java OpenCV 環境セットアップ(on Mac)
  6. Eclipse SceneBuilderを追加する
  7. JavaFX SceneBuilder EclipseSceneBuilder連携~

Java Basic一覧

  1. Java Basic Level 1 〜Hello Java〜
  2. Java Basic Level2 〜Arithmetic Calculate〜
  3. Java Basic Level3 〜About String class〜
  4. Java Basic Level 4〜Boolean〜
  5. Java Basic Level 5〜If Statement〜
  6. Java Basic Summary from Level1 to 5
  7. Java Basic Level 6 〜Traning of If statement〜
  8. Java Basic Level8 〜How to use for statement〜
  9. Java Basic Level 8.5 〜Array〜
  10. Java Basic Level 9〜Training of for statement〜
  11. Java Basic Level 10 〜While statement 〜
  12. Java Basic Swing〜オブジェクト指向〜
  13. Java Basic Swing Level 2〜オブジェクト指向2〜
  14. サンプル実装〜コンソールゲーム〜
  15. Java Basic インターフェース・抽象クラスの作り方
  16. Java Basic クラスとは〜Step2_1〜
  17. Java Basic JUnit 〜テストスイートの作り方〜

Git関連

  1. Java Git clone in Eclipse 〜サンプルの取得〜
  2. Eclipse Gitリポジトリの取得 GitからソースをPullしよう〜
  3. IntelliJ IDEA GitGitリポジトリからクローン〜

Java Basic Arrays 〜多次元配列〜

イントロダクション

個人的にOpenCVの学習を行なっているところで、配列に関して触れていなかった事に気が付いたのでここで触れておこうと思います。

ちなみに、OpenCVで画像(imgデータ)を扱うのですが、これは平面画像だと2次元配列(縦、横の配列なので2次元配列)、そして、透過するデータを追加すると3次元。。。と配列のデータ量が増えていきます。

配列の解説

While文で配列をループするコードを解説していますが、配列に関しても解説しています。

多次元配列

論より証拠、ソースを見てみると一目瞭然ですが、配列のイメージは持っておくようにしましょう。上の動画を見てもらえれば簡単なイメージが作れると思います。

サンプルコード

下のリンクはGithubへのリンクになります。コードの全体があり、コピペもしやすいと思われます。
そして、プログラムの内容に関しては次の通りです。

  1. String型の1次元配列「lv1Array」を宣言します。
  2. 同様に2次元配列「lv2Array」を宣言します。
  3. 3次元配列「lv3Array」を宣言。
  4. 1次元配列をFOR文で表示します。
  5. 2次元配列を2次元ループで表示します。※2次元ループはFOR文が2階層あります。
  6. 3次元配列を3次元ループで表示します。※3次元ループはFOR文が3階層あります。

Sample_Array.java

public class Sample_Array {
  /** メインメソッド */
    public static void main(String[] args) {
        // 1次元配列
        String[] lv1Array = new String[] {"a", "b", "c"};
        // 2次元配列
        String[][] lv2Array = new String[][] {{"a", "b", "c"}, {"d", "e", "f"}};
        // 3次元配列
        String[][][] lv3Array = new String[][][] {
            {{"a", "b", "c"}, {"d", "e", "f"}}
            ,{{"g", "h", "i"}, {"j", "k", "l"}}
            ,{{"m", "n", "o"}, {"p", "q", "r"}}
            };
        // 1次元配列を表示する
        System.out.println("*** 1次元配列を表示 ***");
        for (String nakami : lv1Array) {
            printf("", nakami);
        }
        // 2次元配列
        System.out.println("\n*** 2次元配列を表示 ***");
        for (String[] nakamiLv2 : lv2Array) {
            for (String nakami : nakamiLv2) {
                printf("", nakami);
            }
        }
        // 3次元配列
        System.out.println("\n*** 3次元配列を表示 ***");
        for (String[][] nakamiLv3 :lv3Array) {
            for (String[] nakamiLv2 : nakamiLv3) {
                for (String nakami : nakamiLv2) {
                    printf("", nakami);
                }
            }
        }
    }
        /** コンソール出力メソッド */
    private static void printf(String label, String value) {
        System.out.print(label + "" + value);
    }
}

実行結果が下になります。

<理解の仕方>

=>理解の仕方は人それぞれなので自分の中でイメージを作ってください。

ちなみに、配列にはint型の配列、文字列型の配列。。。などいろいろありますが、「XXX型の変数」があれば、「XXX型の配列」があります。

筆者の場合

筆者の場合は、以下のようなイメージを持っています。

変数

小さな段ボール箱のイメージで持っています。そこに数値型、文字、文字列型、クラス型の値を入れる(セット)するイメージです。

配列

配列になると上記の段ボールより大きい段ボールをイメージします。

次元数が増えると段ボールもより大きくなります。

1次元配列

1次元配列は変数が、おおきな箱の中に並ぶようなイメージを持っています。

String[] hako = new String[] {"1XX", "2XX", "3XX" ...};
hako[0] => "1XX"
hako[1] => "2XX"
hako[2] => "3XX"

2次元配列は変数が、さらに大きな箱の中に並ぶようなイメージを持っています。

String[][] hako = new String[][]{{{"11X", "12X", "13X"},{"21X", "22X", "23X"},{"31X", "32X", "33X"} ...};
hako[0][0] => "11X"
hako[0][1] => "12X"
hako[0][2] => "13X"
hako[1][0] => "22X"
hako[1][1] => "22X"
hako[1][2] => "22X"

こんな感じです、実際には目に見えるものではないので「イメージ」になってしまいます。プログラムを実行すれば「結果」をみることができるのでより具体的なイメージができると思います。

関連ページ一覧

OpenCVで画像解析の基本を学ぶ

  1. Java OpenCV Lv4 〜画像の中身をみてみる〜「画像データは配列になっている」

<Java Step1〜ミニゲーム作成>