プログラマのメモ帳

【開発環境構築】Mavenプロジェクトで実行Jarを作成【Java】

Java開発でMavenを使うことが多くなりなれてきたのでMavenプロジェクトを作成します。Mavenのいいところは「pom.xml」ファイルを編集することで外部jarファイルをダウンロードしてくれるところになります。



新規プロジェクト作成

「ファイル」→「新規」→「Mavenプロジェクト」を選択します。

「シンプルなプロジェクトの作成(S)(アーキタイプ選択のスキップ)」をチェックして「次へ」ボタンを押下します。

「グループId」、「アーティファクトId」を入力して「完了」ボタンを押下します。

グループId:一意に識別する名前(ルートパッケージなど)。(任意の文字列)

アーティファクトId:プロジェクトの名前。(任意の文字列)

アーティファクトIdに指定した名前のプロジェクトが追加されます。

パッケージの追加

ビルドを実行するプログラムを作成をするため、まずパッケージを作成します。

「src/main/java」を右クリックして「新規」→「パッケージ」を選択します。

「名前」を入力して「完了」ボタンを押下します。

パッケージが作成されます。

実行クラスの作成

起動時に実行するクラスを作成します。

折角なので「Swing」のUI画面を開始するようにします。

「src/main/java」に追加したパッケージで右クリックし「新規」→「その他」を選択します。

「WindowBuilder」→「Swingデザイナー」→「JFrame」を選択して、「次へ」ボタンを押下します。

「名前」を入力して「完了」ボタンを押下します。

クラスが作成されます。

ビルドの設定

「pom.xml」ファイルを開きます。

<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>com.pg-nyoro</groupId>
  <artifactId>nyoro-tool</artifactId>
  <version>0.0.1-SNAPSHOT</version>
</project>

プロパティ定義(pom.xml内で利用する変数)を「<project>要素」に追加します。

  <!-- プロパティ定義 -->
  <properties>
  	<jdk.version>1.8</jdk.version>
  	<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

ビルド定義を「<project>要素」に追加します。

  <!-- ビルド設定 -->
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <configuration>
          <transformers>
            <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
              <!-- 起動時に実行するクラスを指定する。 -->
              <mainClass>com.pg.nyoro.tool.MainFrame</mainClass>
            </transformer>
          </transformers>
        </configuration>
        <executions>
          <execution>
            <id>make-assembly</id>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>${jdk.version}</source>
          <target>${jdk.version}</target>
          <testSource>${jdk.version}</testSource>
          <testTarget>${jdk.version}</testTarget>
        </configuration>
      </plugin>
    </plugins>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
      </resource>
    </resources>
  </build>

ビルドの実行

pom.xmlファイルを実行して実行可能なjarファイルを生成します。

「pom.xml」を見クリックして「実行」→「Maven ビルド…」を選択します。

「ゴール」に「package」を入力して「実行」ボタンを押下します。

コンソールにビルドの状態が表示され、最後に「BUILD SUCCESS」が表示されればビルド成功です。

プロジェクト上では以下のフォルダーに作成されています。

エクスプローラーでは以下のパスに格納されます。

「E:\pleiades-4.7.2-java\workspace\nyoro-tool\target\nyoro-tool-0.0.1-SNAPSHOT.jar」

※pleiades-4.7.2-java: Eclipseを展開したフォルダー名

※nyoro-tool: Mavenプロジェクト作成時に指定したアーティファクトId名

このパスはコンソールにも表示されておりますので確認できます。

実行可能Jarを起動

ビルドした実行可能Jarを起動します。

コマンドプロンプトを起動して以下のコマンドを実行します。

REM ## javaコマンドのパス指定
set path=%path%;E:\pleiades-4.7.2-java\java\8\bin\
REM ## 実行可能JARファイルの格納されているフォルダーへ移動
cd E:\pleiades-4.7.2-java\workspace\nyoro-tool\target
REM ## Jarファイルを実行
java -jar nyoro-tool-0.0.1-SNAPSHOT.jar

アプリケーションが実行されます。

なにも実装していないので空白の画面が表示されます。

ダブルクリックで実行する場合

Jarファイルを「Java」プログラムに関連付けすることでJarファイルをダブルクリックで実行することができます。ただ、Windows7の環境では動作したのですがWindows10の環境では動作しませんでした。

そのため、コマンド実行の方法を記載しております。

次回はspringを導入します。