通常のJavaプロジェクトをMevenプロジェクト化します
プロジェクトを右クリック→Convert to Meven Projectをクリックします。
お疲れ様でした。
[rakuten ids="ocha-no-budouen:10000081"]
Javaの基本
通常のJavaプロジェクトをMevenプロジェクト化します
プロジェクトを右クリック→Convert to Meven Projectをクリックします。
お疲れ様でした。
[rakuten ids="ocha-no-budouen:10000081"]
ライブラリの追加=JARファイルの追加の認識です。
これは、LWJGLをライブラリに追加した時の動画です。
直接ビルドパスを追加してやります。JSONライブラリのダウンロードします。
作成したプロジェクトがMavenではないのでJARをビルドパスに追加します。
今回はサンプルとして「json-path-2.1.0.jar」を追加します。
1:プロジェクトを右クリック→プロパティをクリック
2:プロジェクトのプロパティを開く
3:ビルドパスを選択→外部JARを追加(Add External JARs)ボタンをクリック
4:追加するJARファイルを選択する
5:プロジェクトに追加されたことを確認
jsonで遊ぼう!さらに体も鍛える(笑)
Java Basic一覧
前回、Pythonで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"]
コンソール画面、ターミナルから「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にパスが通っていないので動きません・・・
チャンチャン(笑)
Java Basic一覧
個人的にOpenCVの学習を行なっているところで、配列に関して触れていなかった事に気が付いたのでここで触れておこうと思います。
ちなみに、OpenCVで画像(imgデータ)を扱うのですが、これは平面画像だと2次元配列(縦、横の配列なので2次元配列)、そして、透過するデータを追加すると3次元。。。と配列のデータ量が増えていきます。
While文で配列をループするコードを解説していますが、配列に関しても解説しています。
論より証拠、ソースを見てみると一目瞭然ですが、配列のイメージは持っておくようにしましょう。上の動画を見てもらえれば簡単なイメージが作れると思います。
下のリンクはGithubへのリンクになります。コードの全体があり、コピペもしやすいと思われます。
そして、プログラムの内容に関しては次の通りです。
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次元配列は変数が、おおきな箱の中に並ぶようなイメージを持っています。
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"
こんな感じです、実際には目に見えるものではないので「イメージ」になってしまいます。プログラムを実行すれば「結果」をみることができるのでより具体的なイメージができると思います。