IntelliJ 使い方 ~JARファイルを出力する~

IntelliJでJARファイルを出力する

Javaでプログラムを作成していると、最終的に配布できるようにしたくなるものです。
作ったモノを配布するには、作成物を「起動ファイル」に変換して配布するパターンが多いです。
C/C++などでは「*.exe」ファイルを出力します。このようなダブルクリックで起動できるファイルのことを
実行可能ファイル(Wiki参照)と呼びます。

でわ、Javaの場合はどうでしょうか?主にJARファイル、WARファイル、EARファイルなどがあります。
WARとかEARファイルは、ウェブアプリケーションとして、デプロイ(Tomcatなどのサーバー上に配置)して起動します。

Githubとの連携方法は下の動画を参照ください。

JARファイルは?

JARファイルは、どちらかというとローカル(自分のPC)上で動かすための起動ファイルです。
「java -jar ファイル名(パス付き)」コマンドで実行することができます。

外国のものばかりのサイトですが、このようなアプリがあるようです。

JAR出力

IntelliJでJARの出力をするときは以下のような手順でやるようです。

  1. File -> ProjectStructureを選択

  2. Airtifactsを選択

  3. 「+」ボタンを押下、JAR -> From module with dependenciesを選択

  4. 起動するメインメソッドのあるクラスを指定

  5. 下のように、出力するファイルを一覧できるので、確認、OKボタンを押下

  6. 上部にある「Build」 -> 「Build Artifact」を選択

指定のフォルダにJARファイルが出力されます。

出力したJARを動かす

下のように動画にしました。

コマンド実行

JARファイルをコマンドで動かすのにJavaプログラミングの記事ではあまり見かけませんが、プログラム引数を使用したいと考えています。

よくある使用方法。

  1. 起動するときにオプションを付けて実行する
  2. 実行するときの設定ファイルを変更する

考えればいくらでも出てくるのでこのくらいにしますが、今回は2の「実行するときの設定ファイルを変更する」を実装することを考えたいと思います。

ビルドパスについて

ファイルやクラスを参照するために設定するのが、ビルドパスです。大体はプロジェクトのルートにせってしてあります。
なので、ファイルを参照するときはプロジェクト直下から記述します。
下の図は、作成しているプロジェクトのフォルダです。

ちなみに、IntelliJ IDEAで開くと下のような画面です。

ここからJARファイルを参照したければ「ObjectOrientedPrograming.jar」と書いてやれば参照できます。
具体的には、下のようなコードです。

File jarFile = Files.newBufferedReader(Paths.get("ObjectOrientedPrograming.jar"));

では、上のプロジェクトのようなフォルダ構成の場合、resourcesフォルダ内の「SampleRpg_story.txt」を参照したいとしましょう。この場合は、「resources/SampleRpg_story.txt」を参照すればよいです。
プログラムで書くと下のようになります。

File jarFile = Files.newBufferedReader(Paths.get("resources", "SampleRpg_story.txt"));

この場合は、フォルダを第一引数("resources")フォルダを指定します。同様にSample_story.txtを参照します。

ちょっとわかりずらいので、下の図に示します。

これを参照するときは、「src/main/resources/Sample_story.txt」とパスを指定してやればOKです。
プログラムで書くと下のようになります。

File jarFile = Files.newBufferedReader(Paths.get("src/main/resources", "SampleRpg_story.txt"));

初めの問題

JARファイルで起動したときに、パスの指定がどのようになるのか?というところを
明確にしたいというところです。

ためにしにJARファイルを作成して実行してみたところ。。。
JARファイルのある場所から普通にファイルの参照ができました。つまりJARファイルのある場所からパスを指定してやれば、対象のファイルを参照できるということがわかりました。

具体的には、下のようなコードです。

    public static void main(String[] args) {
        System.out.println("Param: " + args[0]);
        BufferedReader buf = null;
        try {
            if (args.length != 0) {
                buf = Files.newBufferedReader(Paths.get(args[0]));
            }
            RpgLogic gameLogic = new TextRpgLogic();
            TextRpgGameEngine engine  = new TextRpgGameEngine(gameLogic);

            engine.start();
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("想定外のエラーで終了します。:" + e.getMessage());
            System.exit(-1);
        }
    }

実行結果はこちらです。

InttelliJ 使い方 ~リファクタリング~

クラス移動リファクタリング

早い話しが、増えてきたクラスを移動して整理したいときに役に立ちます。

参考サイトはIntteliJのリファレンスページです。

クラス移動のやり方

  1. 移動対象のクラスを右クリック
  2. 移動先のパッケージを指定する
  3. 「Refactor」をクリック

メソッド名の変更方法

メソッドの名前を変更したいとき、すでに実装済みだと、その影響範囲をすべて変更しなくてはいけません。
<例>

  <変更前>            <変更後>
RpgConst.sceneType ->       RpgConst.type
<呼び出し側:変更前>      <呼び出し側:変更後>
RpgConst.getSceneType();  RpgConst.getType();

参考サイトはIntelliJのドキュメントです。
実際に、やってみるときは以下の手順を踏みます。
変更対象のメソッドを指定します。

指定して変更した後にTabキーを押下します。

InttelliJ 使い方 ~JavaDocを出力する~

javaDocの出力

参考サイトはJetBrainのサイトです。

現在作成しているテキストRPGのクラスが増えてきたので、そろそろとJavaDocを出力してドキュメントなどにまとめておこうと考えました。

JavaDoc出力手順

参考サイトの手順委従い、進めていくと下のように、エラーが出ました。

文字コード(エンコード)指定が間違っているようです。

警告

no summary or caption for table

このような警告がありました。

/**
 * プレーヤーを表現するクラス。
 * 名前の最大文字数は6文字<br>
 * <table>
 * <tr><td>共通項目</td><td>意味</td></tr>
 * <tr><td>攻撃力</td><td>現在装備している武器力 + 対象の射程攻撃力(ステータス)</td></tr>
 * <tr><td>防御力</td><td>現在装備している防具力 + 防御力(ステータス)</td></tr>
 * <tr><td>武器</td><td>メインとサブがあり、アビリティにより使用方法法が異なる</td></tr>
 * <tr><td>防具</td><td>防具、着脱は、Map画面でのみ可能</td></tr>
 * </table>
 * @author 実装者の名前
 */

テーブルにsummary="XXX"をつか白という意味らしいです。

JavaDocでのエスケープ文字

「\(バックスラッシュ)」を使うようです。

実行結果

警告が多少ありましたが、後々に直す方向で。。。

出力した結果はGitにアップしてあります。

Github Page

Githubのドキュメントを参考に作成しました。
対象になるリポジトリのルートに「docs」フォルダを作成しそこにHTMLを配置する形でないとうまく動かないようです。
自分の作成した方法は以下のようになります。

  1. IntelliJでJavaDocを出力する
  2. 出力するフォルダ、プロジェクト直下(ルート)に「docs」を作成
  3. それをPUSHする。

IntelliJ IDEA Maven リポジトリからロードできない

Mavenでソースをロードできない

IntelliJ IDEAを使用してpom.xmlにMavenリポジトリからソースをロードしようとすると下のような文言が出てロードできない事象にあいました。

依存関係 'com.ibm.icu:icu4j:2.9.1' が見つかりません

これは、間違っているので、エラーになっているのですが。正しくは、下のような形でpom.xmlを書きます。

<dependencies>
    <dependency>
        <groupId>com.ibm.icu</groupId>
        <artifactId>icu4j</artifactId>
        <version>2.6.1</version>
    </dependency>
</dependencies>

これでロードできるはずなのですが、出来ない。。。
こちらのページを参考にすると、「Mavenの更新ができていないから」ということでした。
下のような操作を行います。

  1. プロジェクトを右クリック
  2. Mavenを選択
  3. プロジェクトの再ロード

これで、ソース(JARなど)をロードすることができます。

でわでわ。。。

IntelliJ IDEA create GIT〜IntelliJでGITへプッシュ〜

イントロダクション

IntelliJ IDEAで作成したプロジェクトをGITへ登録する手順です。

Introduction

How to push own project in IntelliJ to GIT.

手順(How to)

(1)ローカルリポジトリの作成(Create local Repository on pc)

1.プロジェクトを開く(Open your project)

2.メインメニューからVCS→Version Control Integrationを選択する(select VCN → Version Control Integration)

3.Gitを選択する(select "Git")

4.コマンドボタン+9(⌘9)を押下→「Unversioned Files」を右クリック→ローカルリポジトリにファイルを追加する (push (⌘9) →right click on "Unversioned Files" → Add files to Git repository

※メニューからも開けます(you can find from menu)

  1. Open the project that you want to put under Git.
  2. From the main menu, choose VCS | Enable Version Control Integration.
  3. In the dialog that opens, select Git from the drop-down list and click OK.
  4. push (⌘9) → right click "Unversioned Files" and Add files to local repository.

(2) Gitリポジトリ(リモートリポジトリ)にプッシュする

1.登録するリモートリポジトリを作成する

Git Hubなどでリポジトリを作成する

2.メインメニューから「VCS」をクリックす

2.プロジェクトの設定を開く

3.接続するGitリポジトリのURLを設定する

4.コミットとプッシュを行う

5.途中でURLを聞かれるので作成したGitリポジトリのURLを指定する

6.登録できた事を確認する

ちなみに自分の作成したGitリポジトリはこちらです。 








IntelliJ IDEA Gradleセットアップ〜コマンド入力部の表示〜

イントロダクション

IntelliJ IDEAでGradleのセットアップを行います。

色々書いているけどこれがイチバン

ズバリ、コマンドプロンプト(ターミナル)です。
IntelliJ IDEAの優れていることはコマンドがすぐに開けるところ

インストール

macの場合
>brew install gralde

これでインストールできます。

Windowsなどは他のサイトを参照してください。

セットアップ

以下のように画面の左下にあるボタンからプルダウン(上がっているけども。。。)

そしてコマンド入力部が開いたら以下のようになります。ちなみにGradleのバージョンを確認するコマンドを入力しています。

>gradle -v

そして、IDEで開いいたコマンド入力部から「gradle init」を入力してエンターキーを押下します。

処理が「> Task :init SKIPPED」とスキップされている時はすでにGradleの初期化が終わっております。(IntelliJ IDEAで作成したらすでに出来上がっています)



IntelliJ IDEA 使い方〜Javaのコンパイルレベル設定〜

ズバリ

プロジェクト構成で設定します。

 



関連ページ

  1. IntelliJ IDEA 環境構築 〜インストールと起動〜
  2. IntelliJ IDEA Git〜Gitリポジトリからクローン〜
  3. IntelliJ IDEA 使い方〜Git接続 Java起動 etc〜
  4. IntelliJ IDEA Jarファイルを作る
  5. IntelliJ IDEA 使い方〜Maven Projectの作成〜
  6. IntelliJ IDEA 使い方〜Mavenでライブラリを追加する〜
  7. IntelliJ IDEA 使い方〜Javaのコンパイルレベル設定〜
  8. IntelliJ IDEA Gradleセットアップ〜コマンド入力部の表示〜
  9. IntelliJ IDEA Discord Botを作る〜Gradle環境のセットアップ〜

 

IntelliJ IDEA 使い方〜ライブラリの追加 〜

IntelliJ IDEAでのライブラリ追加

プロジェクトを開く

初期画面か作成したプロジェクトを選択

ワークスペースが開く

上部から「ファイル」→「プロジェクト構成」を選択する

下のような画面が表示されるのでから「+」をクリック

ファイルを選択する

画面キャプチャはOpenCvを追加しました。

JDKの追加

  1. プロジェクトの設定(Project Structure)を開く
  2. File -> Project Structureを開く
  3. SDKのセレクトボックスよりAdd SDKを選択
  4. Dwonload SDKを選択

関連ページ一覧

  1. IntelliJ IDEA 環境構築 〜インストールと起動〜
  2. IntelliJ IDEA Git〜Gitリポジトリからクローン〜
  3. IntelliJ IDEA 使い方〜Git接続 Java起動 etc〜
  4. IntelliJ IDEA Jarファイルを作る
  5. IntelliJ IDEA 使い方〜Maven Projectの作成〜
  6. IntelliJ IDEA 使い方〜Mavenでライブラリを追加する〜
  7. IntelliJ IDEA 使い方〜Javaのコンパイルレベル設定〜
  8. IntelliJ IDEA Gradleセットアップ〜コマンド入力部の表示〜
  9. IntelliJ IDEA Discord Botを作る〜Gradle環境のセットアップ〜

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 8.5 〜Array〜
  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〜

IntelliJ IDEA 使い方〜Maven Projectの作成〜

IntelliJの基本的な操作

Maven Projectの作成手順

Create Projectを選択する
※画像で選択しているところは別です

Mavenを選択する

右下の方に色々と並んでいますが構わず「Next」

画面に項目に名前を入れます。
自分の場合
GroupId: zenryokuservicve
Artifact:  tensorflow.prac
※一番下はそのまま。。。

初期状態で値が入力されていますので「Finish」

作成結果を下に示します。

ここから依存関係の追加などを行います。

関連ページ一覧

IntelliJ IDEA

  1. IntelliJ IDEA 環境構築 〜インストールと起動〜
  2. IntelliJ IDEA Git〜Gitリポジトリからクローン〜
  3. IntelliJ IDEA 使い方〜Git接続 Java起動 etc〜
  4. IntelliJ IDEA Jarファイルを作る
  5. IntelliJ IDEA 使い方〜Maven Projectの作成〜
  6. IntelliJ IDEA 使い方〜Mavenでライブラリを追加する〜
  7. IntelliJ IDEA 使い方〜Javaのコンパイルレベル設定〜
  8. IntelliJ IDEA Gradleセットアップ〜コマンド入力部の表示〜
  9. IntelliJ IDEA Discord Botを作る〜Gradle環境のセットアップ〜

Java Discord

  1. IntelliJ IDEA Discord Botを作る〜Gradle環境のセットアップ〜
  2. Java Discord セットアップ〜Hello Discord〜
  3.  Java Discord ピンポン〜Discordプログラム〜
  4. Java Discord Listener実装〜コマンドを好きなだけ追加しよう〜

 

IntelliJ IDEA 使い方〜Mavenでライブラリを追加する〜

外部ライブラリ追加手順

  1. プロジェクトを開く

  2. Project Structureを開く

  3. 「Module」を選択する

  4. 「Dependency」タブを開く(右側のタブ)

  5. 右側の下にある「+」ボタンを押下

  6. 下にある「Module Dependency」をクリックする

ここから、ツイするライブラリファイル(XXX.jar)などを選択します。