開発環境構築~Windows版Eclipseの設定~

Index

Install Eclipse

MergeDocからダウンロードします。

最新版のものを選択します。すると下のようにダウンロードするEclipseを選択できる部分が見つけられるので、迷ったら「Standerd Edition」を選択しましょう。細かいプラグインなどはいつでもインストールできます。※これでも結構なプラグインが入っていました。

そして、ダウンロードが始まらない場合は、リンクの部分をクリックします。

今回は、「20200702.zip」というファイルをダウンロードしました。
ダウンロードしたら、Cドライブ直下(C:)に解凍します。パスが長くなってEclipseが動かなくなる可能性があるためです。

ちなみに、自分の場合ZIPファイルの解凍ができなくてつまずきました。
7ZIPをインストールして実行したらうまくいきました。ちなみに回答したのは。「D:\」です。なので解凍後は「D:\pleiades」となりました。

Eclipseを動かす

試しに、eclipse.exeを起動してみてください。うまく動けばそれでよし。もし動かない場合はエラーメッセージが出るのでそれをちょっと眺めます。

早話が、「JDK(JRE)がないですよ!」というエラーです。JDKをダウンロードしてください。
解凍したフォルダにある「eclipse.ini」を開きバーチャルマシン=JDKを設定します。(追記してください。)

ちなみにエラーログの場所は以下になります。
WORKSPACE_HOME/.metadata/.log
自分の環境だと以下になります。

D:\pleiades\workspace.metadata.log

-vm
JAVA_HOME¥bin¥javaw.exe

JDKがない場合は

  1. OracleのHPからダウンロードできます。※この場合はOracleのユーザー登録が必要です。

  2. OpenJDKを開いてほしいバージョン番号(widows 64bit jdk8)を選択します。

  3. eclipse.iniの設定を行う。

    • 使用するJVM(JDK)を指定します。

      -vm
      D:/Apps/jdk1.8.0_265/bin/javaw.exe
    • 使用するメモリの指定を行います。

      -vmargs
      -Xms512m # メモリの最小値
      -Xmx1024m # メモリの最大値

      最終的に以下のようになりました。

-vm
D:/Apps/jdk1.8.0_265/bin/javaw.exe
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Xms512m
-Xmx1024m
-Dosgi.requiredJavaVersion=1.8
-XX:+UseG1GC
-XX:+UseStringDeduplication
--add-modules=ALL-SYSTEM
-Dosgi.dataAreaRequiresExplicitInit=true
-Xverify:none
-javaagent:dropins/MergeDoc/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar
-javaagent:lombok.jar

しかし、これで終わりではありませんでした。JDKが32bit版だったようで下のようなエラーが出ました。

なので、再度64ビット版をダウンロードしました。amazonのページでした。

これで自分のところではEclipseの起動ができました。

Setting Eclipse

Eclipseの設定を行います。
初めにEclipseを起動するとワークスペースの場所を聞かれます。
特に気にしないのであれば、そのままの値でワークスペースを作成して問題ありません。

そして、起動すると下のような画面が見れます。

不要なプラグインの削除

ヘッダーメニューから。。。
Help(ヘルプ) -> Market Place(マーケットプレイス)を開く
すると下のように、追加するプラグインを検索する画面が見れます。
MarketPlace

そして、インストール済みのタブを選択します。
InstalledPlugin

引き続き、不要なプラグインを選択
noNeedPlugin

変更と表示されているプルダウンからアンインストールを選択し不要なプラグインを削除します。

更新(プラグインのアンインストール)を適用するのにEclipseの再起動を行います。

プロジェクトの作成From Github

Githubにあるリポジトリからプロジェクトを作成します。
まずは、Githubにて、プロジェクト用リポジトリを作成します。
gitRepo1

そして、Codeとある部分をクリックすると下のようにダイアログが出ます。
dialog1
ここからURLをコピーします。

今度はEclipseに戻り、プロジェクトのインポートを選択します。
pachageExp

すると、下のようなダイアログが開くので、Gitからプロジェクト(スマートインポートでもどちらでもよいが今回はスマートインポートを選択しました。)
gitImport1

次は、クローンを選択します。
gitImport2

そして、先ほどコピーしたGihubのリポジトリURLを貼り付け,
Githubのユーザーとパスワードを入力します。
clone1

「セキュアストアに保管」にチェックを入れると毎回入力しなくてよいです。

そして、間違いがなければ下のように対象になるブランチが表示されますので、次へ進みます。
clone2

クローンする場所(ローカルリポジトリ)は下のような場所に設定しました。サブモジュールのクローンにチェックを入れ忘れないようにしてください。 ※今回は、サブモジュールがないので関係ありませんが。。。
clone3

クローンの完了です。
clone4
workspace2

Javaのソース配置

ここまで来たらJavaコードを書きたいのですが、パッケージなどの配置先をどのようにするか?を決めないといけません。
とりあえず、プロジェクトがJavaプロジェクトになっていないのでMavenプロジェクトに変更し、パッケージ構成を作成します。

  1. プロジェクトを右クリック
    構成 > Mavenプロジェクトへ変換

  2. 「src/main/java」と「src/test/java」というフォルダができるのでそれぞれ、メインの実装、テストクラスの実装用に使用する
    maven1

  3. パッケージを作成し、その配下にJavaソースを作成、とりあえずはHello Worldを実行して問題なくJavaを起動できることを確認
    ResultHelloWorld

JavaFX

JavaFXを使用してGUIアプリを作成したいと思ったときにjfxrt.jarがビルドパスに含まれてない場合があるようです。自分の場合は下のように解決しました。
「プロジェクトを右クリック⇒プロパティ⇒Javaのビルドパス」を開きます。
次に、「外部JARの追加をクリックして下のようにjfxrt.jarをビルドパスに追加します。

Jfxrt.jar

これで、動けばよいのですが最近ではJavaFXに関してGluonがメインで配布しているようで。。。

Setting Junit

JUNITの設定を行います、単純にjunit.jarをビルドパスにつなげるだけです。
しかし、ライブラリがあるのでそれを設定するほうが楽です。

  1. プロジェクトを右クリック -> プロパティ、もしくはAlt + Enterでプロジェクトの設定を開きます。
    projectProperty

  2. ライブラリの追加をクリック
    elipseAddLibrary

  3. JUnitを選択(選択後の画像です)
    elipseJunit5

  4. JUnit追加後
    eclipseAfterJunit
    プロジェクトにJUnitが追加されています。
    eclipseAfterJunit2

カバレッジを使用する

JUnitでテストを実行した後に、テストケースが網羅できているかの確認をしたいときに使えます。
今回のセットアップでは、すでにカバレッジ(プラグイン)が入っていたので、実行手順を示します。

ちなみに、プラグインの追加方法は以下

Junitでカバレッジを取得する
1.まずはeclipseを起動し、「ヘルプ」→「Eclipseマーケットプレース」を選択します。
2.Eclipseマーケットプレースのウィンドウが開くので、検索欄にEclEmmaと入力し、「Go」ボタンを押下してください。
検索結果にEclEmmaが表示されるので、「インストール」ボタンを押下してインストールします。

カバレッジ起動方法
  1. テストクラスを右クリック
    coverage

  2. JUnitテストを(実行)

実行構成は下の「カバレッジの構成」を選択します。
coverageConf


関連ページ一覧

Eclipse セットアップ(Mac版)

  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リポジトリからクローン〜

JavaFX関連ページ

  1. Eclipse SceneBuilderを追加する
  2. JavaFX SceneBuilder 〜EclipseとSceneBuilder連携~
  3. JavaFX SceneBuilder〜ボタンにメソッドを割り当てるワンポイント〜
  4. Java プロコンゲーム 〜見た目の作成(SceneBuilderの使用)〜

ステップアップ関連ページ一覧

  1. Java 初めてでも大丈夫〜ステップアッププログラミングのススメ〜
  2. ステップアッププログラミング〜Java FxでHelloWorld解説〜
  3. Java StepUpPrograming〜JavaFX で四則計算〜
  4. Java StepUpPrograming〜JavaFXで画面切り替えを作る1〜
  5. Java StepUpPrograming〜JavaFXで画面切り替え2ボタン作成〜
  6. Java StepUpPrograming〜JavaFXで画面切り替え3アクション〜
  7. Java StepUpPrograming〜JavaFXで画面切り替え4Pane切り替え〜
  8. Java StepUpPrograming〜JavaFXで画面切り替え5WebEngine

JavaFX + ND4Jで機械学習準備

  1. JavaFX + ND4J〜数学への挑戦1:ND4Jのインストール〜
  2. JavaFX + ND4J〜数学への挑戦2: 行列の計算〜
  3. Java + ND4J 〜数学への挑戦3: ベクトル(配列)の作成方法〜

オブジェクト指向関連ページ

  1. [オブジェクト指向の概念1〜OracleDocのチュートリアル1〜](https://zenryokuservice.com/wp/2019/10/301. /%e3%82%aa%e3%83%96%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e6%8c%87%e5%90%91%e3%81%ae%e6%a6%82%e5%bf%b5-%e3%80%9coracledoc%e3%81%ae%e3%83%81%e3%83%a5%e3%83%bc%e3%83%88%e3%83%aa%e3%82%a2%e3%83%ab%ef%bc%91/)
  2. オブジェクト指向の概念2〜クラスとは〜

Atomを使う~マークダウンエディタとして使用する~

Introduction

Githubでお馴染みの「Atom」について、以下の内容を学習しました。

  1. インストール
  2. MD, PDF出力、HTML出力のセットアップ
  3. マークダウンの書き方

AtomとMarkDownを使用する(for Windows)

  1. Install Atom
  2. Short Cuts
  3. Setup
    3-1. ATOMToJapanese
    3-2. PDF
  4. MarkDown

※ページ内リンクは、日本語ではうまくいかなかった(日本語化していない状態です。)そしてワードプレス上でもうまくいかないようです。。。

Install Atom

Atomのダウンロード先にアクセスして、対象のファイルをダウンロードします。
AtomDownload

インストーラーをダウンロードできるので、簡単にインストールできます。ただし、Cドライブにインストールされてしまいます。
Atom1

Short Cuts

  • プレビュー:Controll + Shift + M
  • 設定:Controll + カンマ
  • GitTab(Repository作成):Controll + Shift + 9

Setup

AtomToJapanese

  1. ヘッダメニュー、「Package -> Setting View -> install Packages/Themes」をクリック
    AtomPackageInstall

  2. 検索部分に「japanese-menu」を入力。

  3. 下のような画面が見れるのでインストールする

PDF

  1. パッケージのインストールを行います。日本語化の時と同様に検索部分に「md pdf」と入力すると、下のような画面が見れます。
    MdToPdf
    mdToHtml
  2. インストールされたら、下のように表示されます。htmlに関しても同様です。
    そして、PDFはAdobeReaderなどのインストールを済ませておきましょう。
  3. 使用するときは、ヘッダメニューから下のように選択して使用します。

絵文字の設定

現在調査中

  1. JSなどでインポートして使用
  2. 絵文字定義ファイルをダウンロードして使用する

MarkDown

書き方一覧

No MDの記述 意味
1 # 見出し
2 - / * リスト
3 1. 番号付きリスト
4 > 引用
5 ** / __ 強調
6 * / _ イタリック
7 *** / --- 水平線
8 \(バックスラッシュ) エスケープ文字
9 * [x] チェックリスト
10 ``` コードブロック
11 ~~ 打消し
12 [リンク名](URL) URLリンク
13 \<http:\//xxxx.com> URLリンク
14 ![代替え文書](画像URI) 画像参照
15 :emoji名: 絵文字~調査中~
16 (末尾にスペース二つ) 改行する

記述サンプル

  1. 見出し

    Hader1(#)

    Header2(##)

    Header3(###)

    Header4(####)

    Header5(#####)
  2. リスト

    • アイテム1

    • アイテム2

    • アイテム3

    • アイテム4

    • アイテム5
      ※スペースを入れることでインデントできる

    • アイテム1

    • アイテム2
      = 補助情報

    • アイテム3
      :詳細などを記載する

    • ウルトラマン
      M78星雲からやってきた正義のヒーロー

  3. 番号付きリスト

    1. リスト1
    2. リスト2
    3. リスト3
    4. リスト4
      ※スペースを入れることでインデントできる
  4. 引用

    引用文章です

  5. 強調
    強調文言

  6. イタリック
    Itaric font

  7. 水平線

***


---


  1. エスケープ文字

  2. チェックリスト

    • [x] test1
    • [x] test2
    • [ ] test2.1
    • [ ] test2.2
    • [ ] test2.3
    • [ ] test3
  3. コードブロック

    public static void main(String[] args) {
    System.out.println("Hello World!");
    }
  4. 打消し戦
    ~打消し戦のサンプル~

  5. URLリンク
    PGボックスのURL

  6. https://zenryokuservice.com

  7. 画像参照
    ![Test](img/Test.png)

  8. 絵文字 調査中
    ~:smile:~

Eclipse Codename one〜クロス開発環境の構築(Eclipseでは動かなかった)〜

IoTの開発をJavaでやりたいと思い色々と調べています。元々はMicrobit〜ラズパイ〜MIDI音源と音を鳴らすための仕組みを作ることにあるのですが、J2ME(Bluetooth)のテストを行うのに色々と不都合があり、Code name oneを使うことにしました。エミュレータでテストを行えばいちいち実機を動かしたりしなくて良いので便利です。
そういう意味であれば、VirtualBoxとか便利なんでしょうね。。。

初めに、Code name oneでJavaMEの開発環境を作ろうとしましたが、自分の想定通りにいかないので(スマホ用のプラグインのようなので、)やめることにしました。

今回の記載内容

インストールおよびセットアップは下のようになります。
しかし、NetBeansでないと動かないという記事も見つけたので、今回はインストール方法のみを記載しました。
他の方法を模索しようと思います。

Codename one plugin イントール

早速、Eclipseへのインストールと設定などを行い開発の準備を進めたいと思います。参照するURLはこちらです
そのままEclipseMarket Placeでインストールできます。

そして、細かい設定、手順などはこちらにありました。

なのでここのページを参照して行きます。

eclipse.ini

初めに設定ファイル(eclipse.ini)に関して以下のような記述がありました。ちなみに自分の環境ではCode name oneをインストールしただけでは動きませんでした。

JAVA_HOME環境変数がJDK 8を指していること、およびJDK 8 binディレクトリへのパスがPATHステートメントの最初にあることを確認してください。他のすべてが失敗した場合は、eclipse.iniファイルを編集してEclipseにJDK 8インストールを強制的に使用させます。

なるほど、そこらへんの設定が必要なのね。。。

まずは、eclipse.iniの確認を行います。これに関しても説明ページがありました
Macなので以下のように対象ファイルを開きます。

  1. 起動しているEclipseのアイコンを右クリックします。
  2. finderでパッケージを開き
  3. eclipse.iniを参照します。

    下のような内容が記載されています。

    -startup
    ../Eclipse/plugins/org.eclipse.equinox.launcher_1.4.0.v20161219-1356.jar
    --launcher.library
    ../../../../../.p2/pool/plugins/org.eclipse.equinox.launcher.cocoa.macosx.x86_64_1.1.551.v20171108-1834
    -product
    org.eclipse.epp.package.java.product
    -showsplash
    org.eclipse.epp.package.common
    --launcher.defaultAction
    openFile
    --launcher.appendVmargs
    -vm
    /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/bin
    -install
    /Users/takk/eclipse/java-oxygen/Eclipse.app/Contents/Eclipse/../MacOS
    -configuration
    ../Eclipse/configuration
    -vmargs
    -Dosgi.requiredJavaVersion=1.8
    -Dosgi.instance.area.default=@user.home/eclipse-workspace
    -XX:+UseG1GC
    -XX:+UseStringDeduplication
    --add-modules=ALL-SYSTEM
    -XstartOnFirstThread
    -Dorg.eclipse.swt.internal.carbon.smallFonts
    -Dosgi.requiredJavaVersion=1.8
    -Xms256m
    -Xmx1024m
    --add-modules=ALL-SYSTEM
    -Xdock:icon=../Resources/Eclipse.icns
    -XstartOnFirstThread
    -Dorg.eclipse.swt.internal.carbon.smallFonts
    -Declipse.p2.max.threads=10
    -Doomph.update.url=http://download.eclipse.org/oomph/updates/milestone/latest
    -Doomph.redirection.index.redirection=index:/->http://git.eclipse.org/c/oomph/org.eclipse.oomph.git/plain/setups/
    

    ポイント

  4. JVMの指定がない
  5. JAVA_HOMEの指定がない

なので、ここの部分をeclipse.iniに追記します。

JVMの確認と記述

ターミナルを立ち上げて確認します。ちなみにCodename oneではJava8(JDK1.8)を使用するようです。

java -version

と入力してエンターキーを押すとJavaのバージョンを確認できます。

そして、Mac OSXの場合は/usr/binにコマンドがインストールされているのでeclipse.iniには以下のように追記します。

-vm
/usr/bin

もし、java -verisonで1.8でない場合は下のように直接VM(JDKのjavaコマンド)を指定すると良いです。

-vm
/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/bin
-vm
/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/bin/java

JAVA_HOME

Javaの環境構築で初めにやったきりになりがちなのが「環境変数」です、毎度毎度やっていると覚えるので、慌てて覚える必要はありません。
<Mac, Linux>
$JAVA_HOME: jdk/binが参照されてればよし上のように/usr/binはMacの場合です。
<Windows>
コントロールパネル→システム設定→環境変数の一覧の中にJAVA_HOMEがあり、PATHの中にJAVA_HOMEがあること
確認するときは、コマンドプロンプトでpathと入力する、pathコマンドは環境変数を設定するコマンドなのでpath以外に入力しないようにしてください。path /?でヘルプが見れます。
ちなみにJAVA_HOMEの確認は下のようにecho $JAVA_HOMEで見れます。

Windowsの場合はecho %JAVA_HOME%でけます。

JUnit 開発方法〜テスト駆動型開発のススメ〜

イントロダクション

U16プログラミングコンテストのサーバーに接続するクライアントアプリをJavaで実装しようという試みを行っております。

その最中にちょうど、テスト駆動型開発をやることにしたのでメモがてらに記載します。

テスト駆動型開発?

早い話が「テストを初めに作る」ということなのですが、世間ではどのような認識をしているのか、よくわかっていません。かと言って自分の認識が正しいと思っているわけではないのですが、自分の解釈はこーというものを記載します。

テストを初めに作る

テストを初めに作るということは「仕様を明確にしてやる」ということになります。つまり以下のように仕様を明確にします。

  1. サーバーから受信するデータは1回の操作で3回ある
    ・GetReady: 現在位置を受信
    ・操作コマンド: 操作によるレスポンスを受信
    ・動作終了"#": 現在位置を受信
  2. GetReadyで受信した情報から周囲の確認を行う
    ・ブロック(その場所に移動するとゲームオーバー)の位置
    ・相手(プレーヤ)がいるかどうか
    ・アイテムがあるかどうか
  3. 操作コマンドの受信結果による次の動作の決定
    ・仕様未決定
  4. 動作終了時の処理
    ・これも周囲の確認処理を行う
  5. 操作を行いながら自分の位置を確認するためのMapを作成する
    ・マップのサイズは15 x 17のサイズ
    ・プレーヤーの初期位置はランダムに決定する
    ・使用できるコマンドはSearch, Put, Walk, Lookなど詳細はこちら(U16旭川プログラミングコンテスト)

以上のような仕様で実装します、未決定の部分に関してはこれから考えます。

テスト作成の前に

まずはクラス構成を考えます(詳細設計)。これは規模としては小さいものなので単純にデータを送受信するU16ProconClientクラスとクライアントの細かい操作(マップを作ったり、次の動作を確認したり。。。)を担当するClientManagerクラスの2つを作成します。

U16ProconClientクラスは、実際にサーバーとのやりとりを行いながらやったので割愛します。

ClientManagerの実装

このクラスは、作成する時に上記で決めた仕様を先に実装します。具体的に以下のように実装します。作成したクラスはTestNd4jです。そして、JUnitの作成方法に関してはこちらのページを参照下さい。

まずは仕様を満たすための実装手順をテストケースに書きます。これは仕様の5番目にある部分を実装するために必要な処理なので、上の仕様を満たすための処理のテストケースです。コメントにある「2.移動した時にMapを。。。」とあるぶぶに関しては今後のことを考えて同じようにテスト(実装方法の確認)を行なった次第です。

/**
 * ClientManagerのコンストラクタで、マッピング用行列を初期化する。
 * 1.初期化時に中身を4で埋める
 * 2.移動した時にMapを拡張するので配列の拡張方法も確認
 */
@Test
public void testCreateINDArray() {
	// INT型データの行列を作成する
	INDArray data = Nd4j.create(new int[] {3, 3});
	System.out.println("*** init zeros***");
	System.out.println(data);
	System.out.println("*** putScalar ***");
	System.out.println(data.putScalar(new int[] {2, 1}, 1.0));
	System.out.println("*** init ones ***");
	// 1の値で初期化された配列に全て3を足す
	INDArray reData = Nd4j.ones(new int[] {3, 3}).addi(3);
	System.out.println(reData);
	System.out.println(Nd4j.pad(reData, new int[] {6,  6}, Nd4j.PadMode.CONSTANT));
}

このような形で、仕様→テストケース→実装とやって行くのが自分の認識している「テスト駆動型開発」です。

実装の例(作成中)

/** 自分の周りをチェックするメソッドのテストケース */
@Test
public void testCheckAround() {
	//// 本当はメソッド1つにつき1ケースのテストを行うが、小さなテストなので勘弁してください。。。 ////
	try {
		Method test = this.getPrivateMethod("checkAround", String.class);
		// テストケース1:周囲にアイテムがある場合
		target.setBufMap(new String[] {"0", "0", "0","0", "0", "0", "0", "0", "0"});
		test.invoke(target, "1010010010");
		//(これから実装)テストケース2:周囲に相手プレーヤがいる場合
		//(これから実装)テストケース3:行動できるスペースにブロックがあるかどうか
	} catch (SecurityException e) {
		e.printStackTrace();
		fail("セキュリティ違反です。");
	} catch (InvocationTargetException e) {
		e.printStackTrace();
		fail("メソッド実行時エラーです。");
	} catch (IllegalAccessException e) {
		e.printStackTrace();
		fail("アクセス違反です。");
	} catch (IllegalArgumentException e) {
		e.printStackTrace();
		fail("メソッドの引数違反です。");
	}
}

仕様を先に持ってくるから仕様を詰めて考えたい人(ほとんどの人がそうだと思う)にはうってつけの開発手法だと思います。

Maven利用の場合

ちなみにMavenを使用してJUnitを入れるときは以下のようなコードを追加します。<project>タグの中に入れてください。

  <properties>
   <junit.version>4.12</junit.version>
  </properties>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>${junit.version}</version>
      <scope>test</scope>
    </dependency>

でわでわ。。。



Eclipse インストール方法~windowsへのインストール~

Windows端末へのEclipseインストール方法

1.Eclipseのインストールページ(MergiDocProject)へ移動し「最新版」の部分をクリックします。下の画面では一番左上のものがそうでした。

2.下の赤枠で囲んだものを選択してやるとあまり重くないスタンダードなものがダウンロードできます。これにプラグインなどをたくさん追加するとめちゃくちゃ重いのですが、最近の(PentiamⅢ以降)のものはサクサク動くと思います。。。環境に依存するので何とも言い難し。。。

上の赤い部分をクリックすると下のような画面が表示され、対象のファイルをダウンロード開始しました。大体5分くらいかかりました。(ネットワークのスピードなども影響するのでおおざっぱなアタリ程度に】

そして、ダウンロードしたものをC:\フォルダ 直下に回答します。

そして、Eclipse.exeを起動(ダブルクリック)すると起動できます。EXEファイルは「C:\pleiades\eclipse」の位置にあるのでそいつを起動します。

そしてうまく動かないときは、多少時間がたってからですが、下のようなログが出力されます。

一番上の部分を見てください「java was started but returned exit code = 13」と書いてありました。なのでこいつをコピーしてググります。そしてたらこちらのページが引っ掛かったので見てみるとJDKのインストールとかの記載があります。

まとめると「JDKがきどうできないよ」というエラーでした。なのでJDKを使用できるように設定します。

Eclipse.ini:設定ファイル

動かないときは、下の位置にある「Eclipse.ini」ファイルを開いてみてください。Windowsの設定によっては拡張子が表示されません。

ちなみに「フォルダオプションで拡張子を表示する設定を行うと拡張子が見れます。

そしてここにはEclipseを起動するときの設定が記載されています。

不足分を追加してやると動きます。上にあげたケース(自分の場合)はJDKはあるけどそれが「Eclipseにあっていないよ」というエラーメッセージでした。

なので、使用できるJDKを使用してEclipseを動かします。

結論

eclipse.iniに下のような設定を行います。

-vm
C:\jdk1.8.0_45_glassfish\bin\java.exe

上が実行結果です。

 

でわでわ。。。

 

Java DB 起動〜Derbyの起動〜

イントロダクション

JavaDB、Derbyの起動について記載します。DerbyはJDK=Javaをインストールしたら一緒についてきます。JDKつまり下のキャプチャになります。

Java(JDK)のインストール先から「db」と言うフォルダがあればインストール済みと言うことです。

起動するためにどうやるのか?

起動するのには大まかに2つのタイプがあります

  1. サーバータイプ:「ij」コマンドでDerbyを起動して、それにアクセス
  2. Embedタイプ:システムプロパティに起動する場所を設定して起動する

今回は2の「Embed」タイプの起動を行います。

  1. Derbyを起動する場所を指定する
  2. エンコード指定をする

<実際のコード>

String url = "jdbc:derby:/Users/takk/eclipse-workspace/AutoBlogPoster/db;create=true";
try {
        // システムのホーム=>Derbyを起動する場所
	System.setProperty("derby.system.home", "/Users/takk/eclipse-workspace/AutoBlogPoster/");
        // エンコードの指定
	System.setProperty("derby.ui.codeset", "UTF8");
        // 指定した場所で起動するDBのコネクションを取得する
	con = DriverManager.getConnection(url);
        // オートコミットする設定
	con.setAutoCommit(true);
        // SQLを実行するためのオブジェクト
	stm = con.createStatement();
        // SQL文
	String isTable = "select * from BUNSETSU_MST";
        // SQLの実行と実行結果取得
	ResultSet rs = stm.executeQuery(isTable);
	while(rs.next()) {
		String st = rs.getString(1);
		System.out.println(st);
	}
} catch(SQLException e) {
	e.printStackTrace();
} finally {
	try {
                // SQLを実行するオブジェクトを閉じる
		stm.close();
                // コネクションを閉じる
		con.close();
                // オブジェクトの解放(メモリ解放)
		stm = null;
                // 同上
		con = null;
	} catch(SQLException e) {
		e.printStackTrace();
	}
	
}


TensorFlow Java 環境構築〜JavaでもTensorFlow〜

イントロダクション

前回まではPythonでのTensorFlowのチュートリアルを一通り(Text Classificationまで)やりました。

  1. Python Tensorflow 〜初めての人工知能〜
  2. Tensorflow Keras〜初めのトレーニング_1〜
  3. Tensorflow Keras〜初めのトレーニング_2:前処理〜
  4. TensorFlow Keras〜テキストの分類〜
  5. TensorFlow Keras〜回帰、準備から予測まで〜

今回はJavaで、もう少し深掘りしてみようと思います。参考サイトはこちら

Javaでの環境構築

eclipseでMavenプロジェクトを作成します。(シンプルプロジェクトでもWebProjectでも大丈夫)。そして、POMファイルを編集します。参考サイトの記載を追加してMavenインストールを行うだけです。

サンプルとして、既存のプロジェクトですが以下のようになっています、POMファイルがある状態でMavenプロジェクトになっていればOKです。

<元のPOMファイル>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>zenryokuservice</groupId>
  <artifactId>gui.mtm</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>
  <name>gui.mtm</name>
  <url>http://maven.apache.org</url>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
         <groupId>org.joml</groupId>
         <artifactId>joml</artifactId >
         <version>1.9.6</version >
    </dependency>
    <dependency>
         <groupId>org.l33tlabs.twl</groupId>
         <artifactId>pngdecoder</artifactId>
         <version>1.0</version>
   </dependency>
  </dependencies>
</project>

<変更後POMファイル>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>zenryokuservice</groupId>
  <artifactId>gui.mtm</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>
  <name>gui.mtm</name>
  <url>http://maven.apache.org</url>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
         <groupId>org.joml</groupId>
         <artifactId>joml</artifactId >
         <version>1.9.6</version >
    </dependency>
    <dependency>
         <groupId>org.l33tlabs.twl</groupId>
         <artifactId>pngdecoder</artifactId>
         <version>1.0</version>
   </dependency>
   <!-- TensorFlow -->
   <dependency>
     <groupId>org.tensorflow</groupId>
      <artifactId>tensorflow</artifactId>
      <version>1.12.0</version>
     </dependency>
 </dependencies>
</project>

太字の部分を追記しました。

一番しから3行文がTensorFlowのライブラリです。

この状態でサンプルコードを実行するとエラリます。。。

Exception in thread "main" java.lang.UnsatisfiedLinkError: Cannot find TensorFlow native library for OS: darwin, architecture: x86_64. See https://github.com/tensorflow/tensorflow/tree/master/tensorflow/java/README.md for possible solutions (such as building the library from source). Additional information on attempts to find the native library can be obtained by adding org.tensorflow.NativeLibrary.DEBUG=1 to the system properties of the JVM.
at org.tensorflow.NativeLibrary.load(NativeLibrary.java:77)
at org.tensorflow.TensorFlow.init(TensorFlow.java:66)
at org.tensorflow.TensorFlow.<clinit>(TensorFlow.java:70)
at org.tensorflow.Graph.<clinit>(Graph.java:361)
at zenryoku.servise.app.autoblog.AutoBlogPoster.helloTensorflow(AutoBlogPoster.java:225)
at zenryoku.servise.app.autoblog.AutoBlogPoster.main(AutoBlogPoster.java:258)

ネイティブライブラリが足りないようです。参考サイトよりネイティブライブラリをダウンロードします。自分の端末はMacなのでmacのものを選択します。

そして解凍します。ここのフォルダをネイティブライブラリのパスとして登録します。

そして、プロジェクトのプロパティを開き以下のようにネイティブライブラリのパスを設定します。Java Build Path -> Native Library Location -> Edit

そして実行すると以下のようにバージョン番号が出力されます。

とりあえずはこれでTensorFlow in Java が起動できます。

 


Git 作成 プッシュ〜コマンドでの新規登録 ワンポイントレッスン〜

イントロダクション

コマンドでのリポジトリ登録です、GUIよりも簡単にできます。

コマンドでのリポジトリ登録

Gitでリポジトリを作成すると下のような画面が見れます。

ここのコマンドを順番に入力するだけです。


ローカルにgitリポジトリを作成する

# リポジトリのディレクトリ(フォルダ)作成
mkdir ripositoryName
# 移動
cd ./ripositoryName
# gitの初期化
git init

リポジトリに登録するファイルを追加

git add sakuseiFile

ちなみに上の画面では「README」ファイルをコマンドで作成しています。

※ehco "XXXX" > README.md -> 「XXXX」がファイルの中に書き込まれます。

リモートリポジトリの登録

git remote add origin https://github.com/ZenryokuService/tensorflow.git

プッシュ

git push -u origin master

お疲れ様でした。

Java BlueJ 〜インストール〜

BlueJ

よりJavaを身近にコーディングできるであろうIDEがありました。

上のリンクからダウンロードできます。

そして、Macの場合は、ダウンロード後にファイルを解凍してファイルをダブルクリックします。

<ダウンロード後>

Zipファイルが解凍されて、フォルダになっています。

<起動ファイル>

「BlueJ」というファイル名です、これをダブルクリックで起動します。

プログラムを作成するときは、左上のメニューから新規作成をクリックします。

とりあえず、クラスを作成した段階で基本的なコードが出力されているので参考になると思います。


C/C++ Micro:bit(Chibi:bit) 〜オンライン コンパイラ(ワークスペース)の使い方〜

イントロダクション

前回は、Microbitにサンプルプロジェクトをインポートしました。

今度はそれをどのようにして動かすのかを学びます。とりあえずはセットアップがまだ続くようです。

オンラインコンパイラの使い方

プロジェクトのインポートを完了したら下の画面のようにある「コンパイル」をクリックします。

すると「〜HEX」ファイルが出力(ダウンロード)されるのでそれをMirobitにインストールします(HEXファイルを配置します)

※HEXファイルをMicrobitにコピーした時にMicrobitの接続が切れてしまう時があるようです。自分の場合は一度外して再度接続したらプログラムがちゃんと起動しました。