【Java】GsonのJarがほしい

JavaでJsonをパースしたい。
使えればなんでも良かったのでGsonにしてみました。


Gson

GsonはGoogleが提供するJSONデータとJavaオブジェクトを相互に変換するためのライブラリです。
Githubで管理されているので、zipでダウンロードするかGitでCloneしてください。
参考 google/gsonGitHub

Maven

Apache Maven(アパッチ メイヴン/メイヴェン)は、
Java用プロジェクト管理ツールである。Apache Antに代わるものとして作られた。
Apacheライセンスにて配布されているオープンソースソフトウェアである。
※wikipedia より抜粋
参考 MavenApache Maven

想定環境

・OS:Windows 10
・Java:1.8
・Maven:3.5.0

インストール

GsonはMavenが無いと難しいので、Mavenをインストールします。
参考URL:https://qiita.com/ko2a/items/15343ea8fae4233e9438

上記ページを参考にダウンロードページからダウンロードします。
執筆時はバージョン3.5.0が最新だったので「apache-maven-3.5.0-bin.zip」をダウンロードしました。
ダウンロードページ:https://maven.apache.org/download.cgi

ダウンロードしたzipを解凍して、Cドライブ直下に配置します。
配置後にパスを通します。
今回は「C:\apache-maven-3.5.0\bin」にパスを通しました。

コマンドを実行して実行確認。

mvn -v
Apache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-04T04:39:06+09:00)
Maven home: C:\apache-maven-3.5.0\bin\..
Java version: 1.8.0_92, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jre1.8.0_92
Default locale: ja_JP, platform encoding: MS932
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

ついでにJavaとJavacにもパスが通ってることを確認します。
もしパスが通ってない、インストールがされてない場合はインストールしてパスを通しましょう。

java -version
java version "1.8.0_92"
Java(TM) SE Runtime Environment (build 1.8.0_92-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.92-b14, mixed mode)

javac -version
javac 1.8.0_92

Jarの作成コマンド

参考URL:https://stackoverflow.com/questions/37975605/how-do-i-download-the-gson-library

ダウンロードしたGsonのソースコードのルートで以下のコマンドを実行。

mvn package

上記コマンドを流したところ見事にエラーがでましたw

mvn package

~~~ 省略 ~~~
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?

いろいろ調べた結果、環境変数に「JAVA_HOME」が必要で、JAVA_HOME/bin/javac.exe も必要っぽいです。
上記でJavaのバージョンが出せたのは、環境変数「Path」にJavaまでのパスが追加されていただけでした。
ということで環境変数に「JAVA_HOME」を追加して、再度コマンドを実行すると

mvn package

~~~ 省略 ~~~


Tests run: 1035, Failures: 0, Errors: 0, Skipped: 1

[INFO]
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ gson ---
[INFO] Building jar: C:\Git\Gson\gson\target\gson-2.8.3-SNAPSHOT.jar
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] Gson Parent ........................................ SUCCESS [  0.772 s]
[INFO] Gson ............................................... SUCCESS [ 19.065 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 20.063 s
[INFO] Finished at: 2017-09-28T16:19:12+09:00
[INFO] Final Memory: 17M/242M
[INFO] ------------------------------------------------------------------------


プロジェクトへの取り込み

あとは適当に完成した「gson-2.8.3-SNAPSHOT.jar」(適当にリネームしてください)を
プロジェクトに取り込み、コードを記述すれば完成です。

package com.oqiita;

import java.util.ArrayList;
import java.util.List;

import com.google.gson.Gson;

public class TestMain {

	public static void main(String[] args) {
		System.out.println("test");

        Gson gson = new Gson();

        Product product1 = new Product("1", "コカ・コーラ");
        Product product2 = new Product("2", null);
        List productList = new ArrayList<>();
        productList.add(product1);
        productList.add(product2);

        // JSONへの変換
        System.out.println(gson.toJson(product1));
        System.out.println(gson.toJson(productList));
	}
}

実行結果

test
{"id":"1","name":"コカ・コーラ"}
[{"id":"1","name":"コカ・コーラ"},{"id":"2"}]

ということで、今回はGoogleのJsonパースライブラリのGsonを使ってみました。
まぁ使ったというよりはJarにしたかっただけなんですがね。

AndroidとかならMavenリポジトリから引っ張ってくるだけなんですが、
どうにも古いプロジェクトやJarのインポート機能しか無いようなツールで
使いたい場合はJarがほしくなります。

以上です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください