JAVA関連のことを調べてみた2020年08月09日

JAVA関連のことを調べてみた2020年08月09日

【JDBC】JavaからSQLite3のデータベースにアクセスしてみた。

今回、ソフト開発の過程でJavaからのデータベースアクセスを勉強していて、データベースの読み出しに成功したので記事にしてみました。
JDBCを使ってのデータベースアクセスはほぼ初めての経験なので、SQLite3の復習も兼ねて順を追ってやっていきたいと思います。

SQLite3の使い方については、[Qiita:SQLite3操作コマンド関連まとめ](https://qiita.com/tsweblabo/items/8fa21f3e9e30885be034)の記事でまとめてありますのでご参照ください。

## 環境
今回の開発環境については以下のとおりです。

– Ubuntu 18.04.5LTS
– OpenJDK 11.0.8
– SQLite3 3.22.0

## データベースを作っておく
既存のデータベースから要素を読み出すために、予めデータベースを作っておきます。

“`shell:データベースを作成
sqlite3 test.db
“`
“`sql:table1を定義
CREATE TABLE table1(id INTEGER PRIMARY KEY

元記事を表示

【Java】Spring BootでWebアプリ開発するためのサンプルプロジェクト

Java(Spring Boot)を使ってWebアプリ開発を進める際のテンプレートです。
下記にサンプルプロジェクトを作りました。
https://github.com/hrk-okd/spring-sample

# ソースコードの説明

## 作成環境
– Windows 10
– jdk-12.0.1
– IntelliJ IDEA Community Edition 2019.1.3 x64

## ソース作成の思想
サンプルなので思想というほどのものではありませんが、一点だけ意識して書いたのは「コンストラクタインジェクション」でDIする方法を採用していることです。

## サンプルプロジェクトのライブラリ構成
サンプルプロジェクトのライブラリは以下の通りです。

<引用元>
https://github.com/hrk-okd/spring-sample/blob/0710e4585767eb3dc260054b57d7607a9543bb60/spring-mvc/build.gradle#L18-L44

“`gradle
dependencies {
//

元記事を表示

JUnitのテスト起動的なものを試してみる

#JUnitのテスト起動的なものを試してみる

Junitで使用される@Testアノテーション について
このアノテーション を実装したメソッドはテストメソッドとして起動するが、
どのような原理で動いているか気になったので
その実装内容に関して考察してみる

## Junitのテストメソッド起動

そもそもJunitで起動するJavaファイルは特定のディレクトリの配下で指定されたJavaファイルのみである?
例えば「src/test」のような設定フォルダの配下にJavaファイルを置くと
そのsrc/testを起点としてテスト起動する。

つまりsrc/testの配下をエントリーポイントとして設定していると考えられるため、
そのディレクトリ配下のJavaファイル(クラスファイル)をトラバースして
@Testアノテーション が設定されているメソッドのみを実行していると考えている
(Junitの実装を見たわけではないので断言できない)

このようにある特定のフォルダ以下をエントリーポイントとして設定しているのは
クラスパスの設定によってクラスローダーのrootパスから順番にJavaファイルを

元記事を表示

【やってみた】Spring チュートリアル

springのチュートリアルでの学習をまとめる

##やったこと
[タスクのスケジュール](https://spring.pleiades.io/guides/gs/scheduling-tasks/)

##【環境】
– Spring Tool Suite 4
:Version: 4.4.1.RELEASE
– ProductName:Mac OS X
– ProductVersion:10.14.6

## 【作るアプリ】
Spring の `@Scheduled`アノテーションを使用し、5秒ごとに現在時刻を出力するアプリを作成する

– 適当なディレクトリに移動

“`
$ git clone https://github.com/spring-guides/gs-scheduling-tasks.git
$ cd gs-scheduling-tasks
“`

– 編集:pom.xml
– awaitility 依存関係の追加(cheduledTasksTest.java のテストのため)

– スケジュールされたタスクを作成
– 作成:新規ファイル (src/ma

元記事を表示

プリプロセッサでダイエットプログラム(iアプリサイズへの対処法)

現在の携帯端末は、スマホのiPhoneとandroidが主流ですが、各々のアプリのサイズの上限って知っていますか?
2020年8月現在で、iOSアプリは4GB、androidアプリは100MBです。

こう見ると随分と差がありますね・・・
androidは大容量のゲームは、後からデータをダウンロードさせる方式にしているのかな。
ヒープは詳しく書いているところがありませんが、端末が数GBのメモリを持っているので、そこまで大きく困ることはないでしょう。

でも今回話題にしたいのは、スマホ誕生前に主力として活躍していたフューチャーフォン(=ガラケー)で、かつドコモのiアプリの話です。

初期のドコモのiアプリの開発方法が、涙ぐましい努力の結晶だったことを紹介したいと思います。

# ドコモのiアプリのサイズ

時は遡って、ガラケーの時代。
ガラケーのアプリ界を引っ張ったのは、ドコモのiアプリだと認識していますが、当時のサイズ上限はどうだったかというと・・・・

以下は最初期に出された、DoJa-1.0プロファイル上のアプリの情報です。

|機種|アプリサイズ(KB)|ヒープ容量(KB)|
|

元記事を表示

[Java]MinecraftのModを作成しよう 1.14.4【8. 鉱石の追加と生成】

(この記事は一連の解説記事の一つになります)

先頭記事:[入門編](https://qiita.com/koteko/items/7afadf8261eac49bacad)
前の記事:[7. 進捗の追加](https://qiita.com/koteko/items/43c02b25b39e6a2a061d)
次の記事:[9. 木の追加と生成]()

# 鉱石の追加
いよいよ少し本格的な部分に入っていきます。Modの固有素材を作った場合その入手手段を用意しなければなりません。それが一次資源であった場合には、ワールド内に生成しておく必要があるでしょう。今回は鉱石の追加を学びます。

まず、既に[2. ブロックの追加](https://qiita.com/koteko/items/c904b3bfdd90f0b9a98a)で説明したように、鉱石ブロックを追加しましょう。全く同じ工程なので解説は省略しますが、`BlockList.ExampleOre`を追加しました。

“`java:BlockList.java
//…
public class BlockList {
pu

元記事を表示

HttpURLConnectionでPATCHリクエストを投げる

Androidアプリ作成時にAPI通信を行いたいとき、訳合ってOSSライブラリを使用せずに実装する必要がありました。
そのため、 `HttpURLConnection` を使って独自に通信部分を作成しました。

しかし、PATCHリクエストを送りたいときにエラー発生。
なんと、 `HttpURLConnection` はPATCHリクエストを投げられないらしいです。
うそ…だろ…。

`X-HTTP-Method-Override` ヘッダーを使って偽装する方法もありますが、サーバー側の依存もあり確実では無いようです。
https://stackoverflow.com/questions/25163131/httpurlconnection-invalid-http-method-patch

OSSライブラリはどうやってるんだ?
ということで、 [Jersey](https://eclipse-ee4j.github.io/jersey/) というHTTPクライアントライブラリの[公開されているコード](https://github.com/jersey/jersey)を参考にして

元記事を表示

h:commandButtonで確認ダイアログでOKの時だけaction属性の処理を実行する方法

– 環境
– CentOS Linux release 7.8.2003 (Core)
– Eclipse IDE for Enterprise Java Developers.Version: 2020-03 (4.15.0)
– openjdk version “11.0.7” 2020-04-14 LTS
– JSF 2.3.9

# やりたいこと
1. ボタンを押下すると確認ダイアログを表示する
1. 確認ダイアログで[OK]ボタンを押下するとaction属性のビジネスロジックを実行する
2. 確認ダイアログで[キャンセル]ボタンを押下するとなにもしない

# 確認ダイアログでOKの時だけaction属性の処理を実行する方法
※. `html`タグ、`next.xhtml`は省略
確認ダイアログは、[window.confirm](https://developer.mozilla.org/ja/docs/Web/API/Window/confirm)を利用

“`xml:base.xhtml

ponsuk</p></blockquote> </blockquote> <aside class='widget widget-post'> <div class='tag-cloud-link'>Java</div> <div class='tag-cloud-link'>jsf</div> </aside> <div><a style='width:100%;' class='btn__link' href='https://qiita.com/ponsuke0531/items/6e2270fbad664ea9b7fc'>元記事を表示</a></div> <h3 id="outline__9"><a href='https://qiita.com/y-bash/items/c01638493a891308fa20'>Gopher君がゆく Episode II ~ ミジンコでも一晩で作れる太陽系シミュレーター、そして暗黒面</a></h3> <blockquote><p># はじめに</p> <p>この記事は、銀河の平和と秩序を維持する共和騎士たちが、とある惑星系シミュレーターを一晩で完成させるために奔走する物語です。</p> <p>プログラミングの基礎知識さえあれば、実際に手を動かしながらこの記事を読み進めることで **誰でも簡単に次のような CG プログラムを作ることができる** ようになるでしょう。<br /> ![jupiter_animation.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634588/3d7f2be7-eda9-31e2-6694-f85ce81ebf06.gif)</p> <p>### Gopher君がゆく シリーズ<br /> この記事は「[Gopher君がゆく Episode I](https://qiita.com/y-bash/items/4a3998714eaf7887cd4b)」の続編となります。</p> <p>ストーリーを重視される方は、先に Episode I から読むことをおすすめしますが、取り扱う技術テーマに関連性がないため、この記事から読んでいただいても理解の妨げになることはありません</p></blockquote> </blockquote> <aside class='widget widget-post'> <div class='tag-cloud-link'>Java</div> <div class='tag-cloud-link'>processing</div> <div class='tag-cloud-link'>gopher</div> </aside> <div><a style='width:100%;' class='btn__link' href='https://qiita.com/y-bash/items/c01638493a891308fa20'>元記事を表示</a></div> <h3 id="outline__10"><a href='https://qiita.com/niwasawa/items/04270770fb8618bb884b'>Java で HTTP リダイレクト先の URL を取得する</a></h3> <blockquote><p>## 概要</p> <p>– Java で HTTP リダイレクト先の URL を取得する</p> <p>## Java 11 版</p> <p>GetRedirect.java というファイル名で以下の内容を保存する。</p> <p>“`java<br /> import java.io.IOException;<br /> import java.net.URI;<br /> import java.net.URISyntaxException;<br /> import java.net.http.HttpClient;<br /> import java.net.http.HttpRequest;<br /> import java.net.http.HttpResponse;<br /> import java.util.Optional;</p> <p>public class GetRedirect {</p> <p> public static void main(String[] args) throws Exception {</p> <p> // コマンドライン引数を取得<br /> String srcUrl = args[0];</p> <p> // リダイレクト先URLを取得<br /> Optional<String> re</p></blockquote> </blockquote> <aside class='widget widget-post'> <div class='tag-cloud-link'>Java</div> </aside> <div><a style='width:100%;' class='btn__link' href='https://qiita.com/niwasawa/items/04270770fb8618bb884b'>元記事を表示</a></div> <h3 id="outline__11"><a href='https://qiita.com/ponsuke0531/items/e06d56b1f1f4eaa985e8'>JSFでid属性を指定する方法</a></h3> <blockquote><p>– 環境<br /> – CentOS Linux release 7.8.2003 (Core)<br /> – Eclipse IDE for Enterprise Java Developers.Version: 2020-03 (4.15.0)<br /> – openjdk version “11.0.7” 2020-04-14 LTS<br /> – JSF 2.3.9</p> <p>JSFではid属性値がxhtmlでしてした値と異なる値で出力されることがある。<br /> 本にはname属性について記載されていたがid属性もコンポーネントツリーと対応関係がわかるようになっているのかもしれない。</p> <p>> FacesServletは、コンポーネントツリーからHTMLファイルを生成してブラウザに送信します。このような変換をレンダリングといいます。<br /> > レンダリングしてHTMLファイルにした後でも、内部にあるコンポーネントツリーとの対応関係がわかるように、バッキングビーンにバインドされるHTMLのタグには、次に示すようなname属性が埋め込まれます。<br /> > 番号 : \<input type="text" name="j_</p></blockquote> </blockquote> <aside class='widget widget-post'> <div class='tag-cloud-link'>Java</div> <div class='tag-cloud-link'>HTML</div> <div class='tag-cloud-link'>jsf</div> </aside> <div><a style='width:100%;' class='btn__link' href='https://qiita.com/ponsuke0531/items/e06d56b1f1f4eaa985e8'>元記事を表示</a></div> <h3 id="outline__12"><a href='https://qiita.com/sakamoto66/items/bf49584fa9f56a9fb808'>UbuntuでJava8とJava11のSDKを使えるようにする</a></h3> <blockquote><p>## OpenJDKの8と11をインストールする<br /> “`bash<br /> $ sudo apt install -y openjdk-8-jdk openjdk-11-jdk<br /> “`</p> <p>## 環境変数JAVA_HOMEを設定する<br /> “`bash<br /> $ vi .bashrc<br /> “`<br /> “`bash<br /> JAVA_HOME=$(readlink -f /usr/bin/javac | sed “s:/bin/javac::”)<br /> export JAVA_HOME<br /> PATH=$PATH:$JAVA_HOME/bin<br /> export PATH<br /> “`</p> <p>## bashrc更新<br /> “`<br /> $ source ~/.bashrc<br /> “`</p> <p>## 環境変数JAVA_HOMEを確認<br /> “`bash<br /> $ echo $JAVA_HOME<br /> “`</p> <p>## javaコマンドのパージョンを切り替える<br /> “`bash<br /> sudo update-alternatives –config java<br /> “`</p> <p>## javacコマンドのバージョンとを切り替える<br /> “`bash<br /> sudo update-alternatives –confi</p></blockquote> </blockquote> <aside class='widget widget-post'> <div class='tag-cloud-link'>Java</div> <div class='tag-cloud-link'>java8</div> <div class='tag-cloud-link'>Java11</div> </aside> <div><a style='width:100%;' class='btn__link' href='https://qiita.com/sakamoto66/items/bf49584fa9f56a9fb808'>元記事を表示</a></div> <h3 id="outline__13"><a href='https://qiita.com/niwasawa/items/31c34abeb336f67ab29a'>Spring Boot で Mustache テンプレートエンジンを使うサンプルコード</a></h3> <blockquote><p>## 概要</p> <p>– Spring Boot で Mustache テンプレートエンジンを使う<br /> – 今回の動作確認環境: Java 14 (AdoptOpenJDK 14.0.2+12) + Spring Boot 2.3.2 + Gradle 6.5.1 + macOS Catalina</p> <p>## サンプルコード</p> <p>### ソースコード一覧</p> <p>“`<br /> ├── build.gradle<br /> └── src<br /> └── main<br /> ├── java<br /> │   └── com<br /> │   └── example<br /> │   ├── SampleController.java<br /> │   └── SampleData.java<br /> └── resources<br /> ├── application.properties<br /> └── templates<br /> ├── error<br /> │   ├──</p></blockquote> </blockquote> <aside class='widget widget-post'> <div class='tag-cloud-link'>Java</div> <div class='tag-cloud-link'>spring</div> <div class='tag-cloud-link'>mustache</div> <div class='tag-cloud-link'>spring-boot</div> <div class='tag-cloud-link'>JMustache</div> </aside> <div><a style='width:100%;' class='btn__link' href='https://qiita.com/niwasawa/items/31c34abeb336f67ab29a'>元記事を表示</a></div> <h3 id="outline__14"><a href='https://qiita.com/ktakeda/items/ea76414383157ad02f66'>ボタン連打防止用コード</a></h3> <blockquote><p>自分用メモ<br /> ・ボタン連打防止用コード<br /> ※参考にする場合は、ご自身で検証してください。(検証不十分なため)</p> <p>“`java:qiita.java</p> <p>public class TestActivity {</p> <p> // !!!自分用メモでテスト不十分なことをご承知ください!!!</p> <p> // バックキー連打防止用フラグ<br /> private boolean backKeyEnabled = true;</p> <p> @Override<br /> public boolean dispatchKeyEvent(KeyEvent event) {<br /> // 連打しようとしたらボタン無効<br /> if(!backKeyEnabled) {<br /> return false;<br /> }<br /> // ボタンを押したら<br /> backKeyEnabled = false;<br /> // ボタンをしばらく押せないようにする<br /> new Handler().postDelayed(new Runnable() {<br /> @Override<br /> public void run() { </p></blockquote> </blockquote> <aside class='widget widget-post'> <div class='tag-cloud-link'>Java</div> <div class='tag-cloud-link'>Android</div> </aside> <div><a style='width:100%;' class='btn__link' href='https://qiita.com/ktakeda/items/ea76414383157ad02f66'>元記事を表示</a></div> <h3 id="outline__15"><a href='https://qiita.com/ro-32/items/761cfbdb03850bc0f8c1'>等価と等値の使い方(equalsの使い方)</a></h3> <blockquote><p>###等価と等値の違い</p> <p>先日受けたJavaSilverの試験結果にて不正解と思われる箇所として<br /> ・「==とequals()を使用して文字列と他のオブジェクトが等しいかどうかをテストする」<br /> が挙げられていたため、復習として記そうと思う。</p> <p>参考[スッキリわかるJava入門](</p> <table border="0" cellpadding="0" cellspacing="0"> <tr> <td> <div style="border:1px solid #95a5a6;border-radius:.75rem;background-color:#FFFFFF;width:184px;margin:0px;padding:5px;text-align:center;overflow:hidden;"> <table> <tr> <td style="width:80px"><a href="https://hb.afl.rakuten.co.jp/ichiba/1aecd7df.780bbf06.1aecd7e0.a0859005/?pc=https%3A%2F%2Fitem.rakuten.co.j</p></blockquote> </blockquote> <aside class='widget widget-post'> <div class='tag-cloud-link'>Java</div> </aside> <div><a style='width:100%;' class='btn__link' href='https://qiita.com/ro-32/items/761cfbdb03850bc0f8c1'>元記事を表示</a></div> <h3 id="outline__16"><a href='https://qiita.com/Anveloper/items/008b2f473b7ca64bebcb'>JVM(Java Virtual Machine)とは?</a></h3> <blockquote><p># JVM(Java Virtual Machine)とは<br /> – JVMとはJava Virtual Machineの略で、Javaのプログラムを動かすために必要なソフトウェアです。<br /> – Java bite codeを実行できる主体です。</p> <p>CPUやOSの種類と関係なく実行できます。<br /> つまり、OS上で動くプロセスで、Javaコードをコンパイルして得られたバイトコードを該当OS(Windows、OS X、Linuxなど)が理解(解析)できる機械語に変換し、実行してくれます。</p> <p>#### 様々なOS用のJVM<br /> ![Untitled.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/684074/11fa21f1-9b31-69d2-b4a1-c8462645173a.png)</p> <p># JVMの構成<br /> 大きく見てみると以下の4つです。</p> <p>– Class Loader<br /> – Execution Engine<br /> – Garbage Collector<br /> – Runtime Data Area</p> <p>#### JVMの構成<br /> ![Un</p></blockquote> </blockquote> <aside class='widget widget-post'> <div class='tag-cloud-link'>Java</div> <div class='tag-cloud-link'>JVM</div> <div class='tag-cloud-link'>基礎知識</div> </aside> <div><a style='width:100%;' class='btn__link' href='https://qiita.com/Anveloper/items/008b2f473b7ca64bebcb'>元記事を表示</a></div> <h3 id="outline__17"><a href='https://qiita.com/r_komori/items/af8f4c172016c01e5598'>java_アノテーション_メモ_20200807</a></h3> <blockquote><p># アノテーション</p> <p>  **1.アノテーションとは**</p> <p>    アノテーションとは「この部分は警告を出さなくてもよい」という指示をソースコード内に記述できることです。</p> <p>    アノテーションは”@”から始まる記述でコメント内ではなくソースコードにそのまま記述します。<br />     以下で標準で準備されている3つのアノテーションを例にどのようなものか実際に確認しましょう。</p> <p>    >違う記事で記述済みのためこれくらいの説明にとどめさせていただきます。</p> <p>  **2.アノテーションを利用したコード**</p> <p>![コメント 2020-08-07 105055.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/687164/9a98b9cb-f582-c2c1-85f9-7b85751cd049.png)</p> <p>  **3.@SuppressWarning – 警告を抑制する**</p> <p>    クラス、メソッド、フィールドなどに対して、一定の種類の警告をしないように指示するのが<br />     **@SuppressWarni</p></blockquote> </blockquote> <aside class='widget widget-post'> <div class='tag-cloud-link'>Java</div> <div class='tag-cloud-link'>アノテーション</div> </aside> <div><a style='width:100%;' class='btn__link' href='https://qiita.com/r_komori/items/af8f4c172016c01e5598'>元記事を表示</a></div> <h3 id="outline__18"><a href='https://qiita.com/ro-32/items/6df248da72bf0917aa17'>Java Silver に落ちた(泣)</a></h3> <blockquote><p>先日Java Silver の試験を受けた。<br /> 結果は 「64%」… <br /> (65%以上なら合格)<br /> ふぁ!!? ショック!! 1%差とかマジカヨ…<br /> あと1問正解していたら合格w<br /> 受験代も馬鹿にならないし、死にたくなりましたw</p> <p>そこまで自信ないけど65〜70%でなんとかいけるかなと思ってました。<br /> 因みに当方<br /> ・30代前半<br /> ・Javaの実務経験なし<br /> ・勉強期間3週間強<br /> ・異業種からSESに転職したばかり<br /> ・html、css、JS、PHPはちょっといじれる程度<br /> という条件</p> <p>転職直後にコロナ禍発生、<br /> 例年なら入社後2〜3週間で案件に入れていたそうだが<br /> しばらく自宅待機の後、休業中<br /> という状況</p> <p>勉強できる時間は豊富にあるので尚更めっちゃ悔しい<br /> この世界向いてないんじゃないか…と思ったが<br /> 意地でも取りたい</p> <p>資格取得自体に価値は無いと仰る方もおられるだろうが、<br /> 自分としては、大学受験という壁を乗り越えてきた経験もなく<br /> 「継続的に勉強する」という行為そのものとほぼ無縁に生きてきたので<br /> せめて資格取得する過程で得られる<br /> ・業務以前の基本的な知見<br /> ・継続学習する習慣<br /> を補おうという魂胆</p> </blockquote> </blockquote> <aside class='widget widget-post'> <div class='tag-cloud-link'>Java</div> </aside> <div><a style='width:100%;' class='btn__link' href='https://qiita.com/ro-32/items/6df248da72bf0917aa17'>元記事を表示</a></div> <h3 id="outline__19"><a href='https://qiita.com/strict39275/items/41da2ad3bb8fd60228e0'>java簡素なブロック崩し作ってみた</a></h3> <blockquote><p>#はじめに<br /> きょうで始めてQiitaに投稿することになりました。正直に何をすれば以下わからず、困惑していますが、とりあえずプログラミング言語のスキルアップの向上のためにもできる限り毎日投稿していきたいと思います。よろしくお願いします<br /> #なぜQiitaに投稿することになったのか<br /> 正直に言えば就活でアピールポイントとして加えたいからです。今のままだと何もできないままエンジニア目指したいですと言われても落ちるのが分かるのでせめて、Qiitaに投稿して、自分の実力がどれくらいなのかを公開したく思いました。これから自分の興味のある分野だけ進捗が生まれるように投稿をし続けたいです<br /> #なぜブロック崩しを作ることになったのか<br /> 学校の課題で自由に作りなさいとの事で過去作ったゲームをここに投稿したいと思いました。あとは自分はブロック崩しやテトリスやぷよぷよが大好きなのでレトロゲームが作りたく思いました。<br /> #ブロック崩しのルール<br /> ブロック崩しはやったことがある人ならわかりますが、あるボールをラケットやバーで打ち返し画面の下に落ちないように工夫する必要がある。打ち返した際にボールをブロックにあてて、全部のブロ</p></blockquote> </blockquote> <aside class='widget widget-post'> <div class='tag-cloud-link'>Java</div> </aside> <div><a style='width:100%;' class='btn__link' href='https://qiita.com/strict39275/items/41da2ad3bb8fd60228e0'>元記事を表示</a></div> <h3 id="outline__20"><a href='https://qiita.com/koteko/items/43c02b25b39e6a2a061d'>[Java]MinecraftのModを作成しよう 1.14.4【7. 進捗の追加】</a></h3> <blockquote><p>(この記事は一連の解説記事の一つになります)</p> <p>先頭記事:[入門編](https://qiita.com/koteko/items/7afadf8261eac49bacad)<br /> 前の記事:[6. レシピの追加](https://qiita.com/koteko/items/4e6f4e25db43907770d9)<br /> 次の記事:[8. 鉱石の追加と生成](https://qiita.com/koteko/items/f17d723337ddf7d5dbd4)</p> <p># 進捗の追加<br /> ここまでアイテム関連を広く浅く触れてきましたが、今度は少し趣向を変えて、進捗(advancements)の追加を行ってみます。<br /> ![advancement_Minecraft.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256627/549f519e-13ad-8971-ce18-3e339cfb59aa.png)<br /> このようなツリー構造のいわゆるトロフィーのようなものです。</p> <p>進捗の追加は**比較的簡単**で、1.14.4ではjso</p></blockquote> </blockquote> <aside class='widget widget-post'> <div class='tag-cloud-link'>Java</div> <div class='tag-cloud-link'>game</div> <div class='tag-cloud-link'>minecraft</div> <div class='tag-cloud-link'>minecraftmodding</div> <div class='tag-cloud-link'>minecraftforge</div> </aside> <div><a style='width:100%;' class='btn__link' href='https://qiita.com/koteko/items/43c02b25b39e6a2a061d'>元記事を表示</a></div> </div> </section> <!-- 記事下シェアボタン --> <aside> <ul class="socialList"> <li class="socialList__item"><a class="socialList__link icon-facebook" href="http://www.facebook.com/sharer.php?u=https%3A%2F%2Fmiofactor.com%2F2020%2F08%2F09%2Fpost-6753%2F&t=JAVA%E9%96%A2%E9%80%A3%E3%81%AE%E3%81%93%E3%81%A8%E3%82%92%E8%AA%BF%E3%81%B9%E3%81%A6%E3%81%BF%E3%81%9F2020%E5%B9%B408%E6%9C%8809%E6%97%A5" target="_blank" title="Facebookで共有"></a></li><li class="socialList__item"><a class="socialList__link icon-twitter" href="http://twitter.com/intent/tweet?text=JAVA%E9%96%A2%E9%80%A3%E3%81%AE%E3%81%93%E3%81%A8%E3%82%92%E8%AA%BF%E3%81%B9%E3%81%A6%E3%81%BF%E3%81%9F2020%E5%B9%B408%E6%9C%8809%E6%97%A5&https%3A%2F%2Fmiofactor.com%2F2020%2F08%2F09%2Fpost-6753%2F&url=https%3A%2F%2Fmiofactor.com%2F2020%2F08%2F09%2Fpost-6753%2F" target="_blank" title="Twitterで共有"></a></li><li class="socialList__item"><a class="socialList__link icon-line" href="http://line.naver.jp/R/msg/text/?JAVA%E9%96%A2%E9%80%A3%E3%81%AE%E3%81%93%E3%81%A8%E3%82%92%E8%AA%BF%E3%81%B9%E3%81%A6%E3%81%BF%E3%81%9F2020%E5%B9%B408%E6%9C%8809%E6%97%A5%0D%0Ahttps%3A%2F%2Fmiofactor.com%2F2020%2F08%2F09%2Fpost-6753%2F" target="_blank" title="LINEで送る"></a></li></ul> </aside> <!-- /記事下シェアボタン --> <!-- 記事下エリア[widget] --> <aside class="widgetPost widgetPost-bottom"><aside class="widget widget-post"><h2 class="heading heading-primary">タグ</h2><div class="tagcloud"><a href="https://miofactor.com/tag/%e3%81%9d%e3%81%ae%e4%bb%96/" class="tag-cloud-link tag-link-13 tag-link-position-1" style="font-size: 8pt;" aria-label="その他 (1個の項目)">その他</a></div> </aside></aside> <!-- /記事下エリア[widget] --> <!-- 関連記事 --> <aside class="related"><h2 class="heading heading-primary">関連する記事</h2><ul class="related__list"> <li class="related__item"> <a class="related__imgLink" href="https://miofactor.com/2024/04/15/post-32618/" title="Go関連のことを調べてみた"> <img src="https://miofactor.com/wp-content/uploads/2019/10/go-150x150.png" alt="Go関連のことを調べてみた" width="150" height="150" > </a> <h3 class="related__title"> <a href="https://miofactor.com/2024/04/15/post-32618/">Go関連のことを調べてみた</a> <span class="icon-calendar">2024.04.15</span> </h3> <p class="related__contents">目次 1. TypeScript+React+Goで適当にアプリを作ってみる2. [Go]スライスの破壊的なソート, 非破壊的なソート3. Goの構文[…]</p> </li> <li class="related__item"> <a class="related__imgLink" href="https://miofactor.com/2024/05/08/post-33256/" title="Rails関連のことを調べてみた"> <img src="https://miofactor.com/wp-content/uploads/2019/10/rails-150x150.png" alt="Rails関連のことを調べてみた" width="150" height="150" > </a> <h3 class="related__title"> <a href="https://miofactor.com/2024/05/08/post-33256/">Rails関連のことを調べてみた</a> <span class="icon-calendar">2024.05.08</span> </h3> <p class="related__contents">目次 1. Railsチュートリアル第11章学習まとめ2. Railsテスト環境でのSQLクエリログの表示方法3. 【Rails】RSpec便利なカス[…]</p> </li> <li class="related__item"> <a class="related__imgLink" href="https://miofactor.com/2022/11/18/post-24282/" title="WEBエンジニアが読んでおきたい技術書 2022年11月18日"> <img src="https://miofactor.com/wp-content/uploads/2019/11/967637031-book-168824_1920-YEnY-1920x1280-MM-100-150x150.jpg" alt="WEBエンジニアが読んでおきたい技術書 2022年11月18日" width="150" height="150" > </a> <h3 class="related__title"> <a href="https://miofactor.com/2022/11/18/post-24282/">WEBエンジニアが読んでおきたい技術書 2022年11月18日</a> <span class="icon-calendar">2022.11.18</span> </h3> <p class="related__contents">目次 1. 【書籍】「良いコード/悪いコードで学ぶ設計入門」の要約 ?2. 見ただけで情報を読み取れる命名を心がけよう3. プログラムの命名は立派な設[…]</p> </li> </ul></aside> <!-- /関連記事 --> <!-- コメント --> <!-- /コメント --> <!-- PVカウンター --> <!-- /PVカウンター --> </main> <!-- /l-main --> <!-- l-sidebar --> <div class="l-sidebar"> <aside class="widget"> <div class="searchBox"> <form class="searchBox__form" method="get" target="_top" action="https://miofactor.com/" > <input class="searchBox__input" type="text" maxlength="50" name="s" placeholder="記事検索"><button class="searchBox__submit icon-search" type="submit" value="search"> </button> </form> </div></aside><aside class="widget"><h2 class="heading heading-widget">Category</h2> <ul> <li class="cat-item cat-item-1"><a href="https://miofactor.com/category/other/">OTHER</a> </li> </ul> </aside><aside class="widget"><h2 class="heading heading-widget">Back number</h2> <ul> <li><a href='https://miofactor.com/2024/09/'>2024年9月</a></li> <li><a href='https://miofactor.com/2024/08/'>2024年8月</a></li> <li><a href='https://miofactor.com/2024/07/'>2024年7月</a></li> <li><a href='https://miofactor.com/2024/06/'>2024年6月</a></li> <li><a href='https://miofactor.com/2024/05/'>2024年5月</a></li> <li><a href='https://miofactor.com/2024/04/'>2024年4月</a></li> <li><a href='https://miofactor.com/2024/03/'>2024年3月</a></li> <li><a href='https://miofactor.com/2024/02/'>2024年2月</a></li> <li><a href='https://miofactor.com/2024/01/'>2024年1月</a></li> <li><a href='https://miofactor.com/2023/12/'>2023年12月</a></li> <li><a href='https://miofactor.com/2023/11/'>2023年11月</a></li> <li><a href='https://miofactor.com/2023/10/'>2023年10月</a></li> <li><a href='https://miofactor.com/2023/09/'>2023年9月</a></li> <li><a href='https://miofactor.com/2023/08/'>2023年8月</a></li> <li><a href='https://miofactor.com/2023/07/'>2023年7月</a></li> <li><a href='https://miofactor.com/2023/04/'>2023年4月</a></li> <li><a href='https://miofactor.com/2023/03/'>2023年3月</a></li> <li><a href='https://miofactor.com/2023/02/'>2023年2月</a></li> <li><a href='https://miofactor.com/2023/01/'>2023年1月</a></li> <li><a href='https://miofactor.com/2022/12/'>2022年12月</a></li> <li><a href='https://miofactor.com/2022/11/'>2022年11月</a></li> <li><a href='https://miofactor.com/2022/10/'>2022年10月</a></li> <li><a href='https://miofactor.com/2022/09/'>2022年9月</a></li> <li><a href='https://miofactor.com/2022/08/'>2022年8月</a></li> <li><a href='https://miofactor.com/2022/07/'>2022年7月</a></li> <li><a href='https://miofactor.com/2022/06/'>2022年6月</a></li> <li><a href='https://miofactor.com/2022/05/'>2022年5月</a></li> <li><a href='https://miofactor.com/2022/04/'>2022年4月</a></li> <li><a href='https://miofactor.com/2022/03/'>2022年3月</a></li> <li><a href='https://miofactor.com/2022/02/'>2022年2月</a></li> <li><a href='https://miofactor.com/2022/01/'>2022年1月</a></li> <li><a href='https://miofactor.com/2021/12/'>2021年12月</a></li> <li><a href='https://miofactor.com/2021/11/'>2021年11月</a></li> <li><a href='https://miofactor.com/2021/10/'>2021年10月</a></li> <li><a href='https://miofactor.com/2021/09/'>2021年9月</a></li> <li><a href='https://miofactor.com/2021/08/'>2021年8月</a></li> <li><a href='https://miofactor.com/2021/07/'>2021年7月</a></li> <li><a href='https://miofactor.com/2021/06/'>2021年6月</a></li> <li><a href='https://miofactor.com/2021/05/'>2021年5月</a></li> <li><a href='https://miofactor.com/2021/04/'>2021年4月</a></li> <li><a href='https://miofactor.com/2021/03/'>2021年3月</a></li> <li><a href='https://miofactor.com/2021/02/'>2021年2月</a></li> <li><a href='https://miofactor.com/2021/01/'>2021年1月</a></li> <li><a href='https://miofactor.com/2020/12/'>2020年12月</a></li> <li><a href='https://miofactor.com/2020/11/'>2020年11月</a></li> <li><a href='https://miofactor.com/2020/10/'>2020年10月</a></li> <li><a href='https://miofactor.com/2020/09/'>2020年9月</a></li> <li><a href='https://miofactor.com/2020/08/'>2020年8月</a></li> <li><a href='https://miofactor.com/2020/07/'>2020年7月</a></li> <li><a href='https://miofactor.com/2020/06/'>2020年6月</a></li> <li><a href='https://miofactor.com/2020/05/'>2020年5月</a></li> <li><a href='https://miofactor.com/2020/04/'>2020年4月</a></li> <li><a href='https://miofactor.com/2020/03/'>2020年3月</a></li> <li><a href='https://miofactor.com/2020/02/'>2020年2月</a></li> <li><a href='https://miofactor.com/2020/01/'>2020年1月</a></li> <li><a href='https://miofactor.com/2019/12/'>2019年12月</a></li> <li><a href='https://miofactor.com/2019/11/'>2019年11月</a></li> <li><a href='https://miofactor.com/2019/10/'>2019年10月</a></li> </ul> </aside> </div> <!-- /l-sidebar --> </div> <!-- /l-wrapper --> <div class="categoryBox"> <div class="container"> <h2 class="heading heading-primary"> <span class="heading__bg u-txtShdw bgc-darkgray">OTHER</span>カテゴリの最新記事 </h2> <ul class="categoryBox__list"> <li class="categoryBox__item"> <div class="eyecatch eyecatch-archive"> <a href="https://miofactor.com/2024/09/20/post-36917/"> <img src="https://miofactor.com/wp-content/uploads/2019/10/java.jpg" alt="JAVA関連のことを調べてみた" width="540" height="270" > </a> </div> <ul class="dateList dateList-archive"> <li class="dateList__item icon-calendar">2024.09.20</li> </ul> <h2 class="heading heading-archive "> <a class="hc-darkgray" href="https://miofactor.com/2024/09/20/post-36917/">JAVA関連のことを調べてみた</a> </h2> </li> <li class="categoryBox__item"> <div class="eyecatch eyecatch-archive"> <a href="https://miofactor.com/2024/09/20/post-36920/"> <img src="https://miofactor.com/wp-content/uploads/2019/10/ios-554x410.png" alt="iOS関連のことを調べてみた" width="554" height="410" > </a> </div> <ul class="dateList dateList-archive"> <li class="dateList__item icon-calendar">2024.09.20</li> </ul> <h2 class="heading heading-archive "> <a class="hc-darkgray" href="https://miofactor.com/2024/09/20/post-36920/">iOS関連のことを調べてみた</a> </h2> </li> <li class="categoryBox__item"> <div class="eyecatch eyecatch-archive"> <a href="https://miofactor.com/2024/09/20/post-36916/"> <img src="https://miofactor.com/wp-content/uploads/2019/10/js-554x410.png" alt="JavaScript関連のことを調べてみた" width="554" height="410" > </a> </div> <ul class="dateList dateList-archive"> <li class="dateList__item icon-calendar">2024.09.20</li> </ul> <h2 class="heading heading-archive "> <a class="hc-darkgray" href="https://miofactor.com/2024/09/20/post-36916/">JavaScript関連のことを調べてみた</a> </h2> </li> <li class="categoryBox__item"> <div class="eyecatch eyecatch-archive"> <a href="https://miofactor.com/2024/09/20/post-36914/"> <img src="https://miofactor.com/wp-content/uploads/2019/10/rails-725x410.png" alt="Rails関連のことを調べてみた" width="725" height="410" > </a> </div> <ul class="dateList dateList-archive"> <li class="dateList__item icon-calendar">2024.09.20</li> </ul> <h2 class="heading heading-archive "> <a class="hc-darkgray" href="https://miofactor.com/2024/09/20/post-36914/">Rails関連のことを調べてみた</a> </h2> </li> <li class="categoryBox__item"> <div class="eyecatch eyecatch-archive"> <a href="https://miofactor.com/2024/09/20/post-36912/"> <img src="https://miofactor.com/wp-content/uploads/2019/10/python-640x410.png" alt="Python関連のことを調べてみた" width="640" height="410" > </a> </div> <ul class="dateList dateList-archive"> <li class="dateList__item icon-calendar">2024.09.20</li> </ul> <h2 class="heading heading-archive "> <a class="hc-darkgray" href="https://miofactor.com/2024/09/20/post-36912/">Python関連のことを調べてみた</a> </h2> </li> <li class="categoryBox__item"> <div class="eyecatch eyecatch-archive"> <a href="https://miofactor.com/2024/09/20/post-36910/"> <img src="https://miofactor.com/wp-content/uploads/2019/10/lambda.png" alt="Lambda関連のことを調べてみた" width="360" height="230" > </a> </div> <ul class="dateList dateList-archive"> <li class="dateList__item icon-calendar">2024.09.20</li> </ul> <h2 class="heading heading-archive "> <a class="hc-darkgray" href="https://miofactor.com/2024/09/20/post-36910/">Lambda関連のことを調べてみた</a> </h2> </li> </ul> </div> </div> <!-- schema --> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Article ", "mainEntityOfPage":{ "@type": "WebPage", "@id": "https://miofactor.com/2020/08/09/post-6753/" }, "headline": "JAVA関連のことを調べてみた2020年08月09日", "image": { "@type": "ImageObject", "url": "https://miofactor.com/wp-content/uploads/2019/10/lambda.png", "height": "230", "width": "360" }, "datePublished": "2020-08-09T11:50:07+0900", "dateModified": "2020-08-09T11:50:07+0900", "author": { "@type": "Person", "name": "editor" }, "publisher": { "@type": "Organization", "name": "f@ctor", "logo": { "@type": "ImageObject", "url": "", "width": "", "height":"" } }, "description": "目次 1. 【JDBC】JavaからSQLite3のデータベースにアクセスしてみた。2. 【Java】Spring BootでWebアプリ開発するためのサンプルプロジェクト3. JUnitのテスト起動的なものを試してみる4. 【やってみた】Spring チュートリアル5. プリプロセッサでダイエットプログラム(iアプリサイズへの対処法)6. [Java]MinecraftのModを作成しよう 1. […]" } </script> <!-- /schema --> <!--l-footer--> <footer class="l-footer"> <div class="container"> <div class="pagetop u-txtShdw"><a class="pagetop__link" href="#top">Back to Top</a></div> <div class="widgetFoot"> <div class="widgetFoot__contents"> </div> <div class="widgetFoot__contents"> <aside class="widget widget-foot"><h2 class="heading heading-footer">タグ</h2><div class="tagcloud"><a href="https://miofactor.com/tag/%e3%81%9d%e3%81%ae%e4%bb%96/" class="tag-cloud-link tag-link-13 tag-link-position-1" style="font-size: 8pt;" aria-label="その他 (1個の項目)">その他</a></div> </aside> </div> <div class="widgetFoot__contents"> </div> </div> <div class="copySns "> <div class="copySns__copy"> © Copyright 2024 <a class="copySns__copyLink" href="https://miofactor.com">f@ctor</a>. <span class="copySns__copyInfo u-none"> f@ctor by <a class="copySns__copyLink" href="http://fit-jp.com/" target="_blank">FIT-Web Create</a>. Powered by <a class="copySns__copyLink" href="https://wordpress.org/" target="_blank">WordPress</a>. </span> </div> </div> </div> </footer> <!-- /l-footer --> <script type="text/javascript" src="https://miofactor.com/wp-includes/js/comment-reply.min.js?ver=6.4.1" id="comment-reply-js" async="async" data-wp-strategy="async"></script> <script> function toggle__search(){ extra__search.className="l-extra"; extra__menu.className="l-extraNone"; menuNavi__search.className = "menuNavi__link menuNavi__link-current icon-search "; menuNavi__menu.className = "menuNavi__link icon-menu"; } function toggle__menu(){ extra__search.className="l-extraNone"; extra__menu.className="l-extra"; menuNavi__search.className = "menuNavi__link icon-search"; menuNavi__menu.className = "menuNavi__link menuNavi__link-current icon-menu"; } </script><script>Array.prototype.forEach.call(document.getElementsByClassName("css-async"),function(e){e.rel = "stylesheet"});</script> </body> </html>