JAVA関連のことを調べてみた2021年12月17日

JAVA関連のことを調べてみた2021年12月17日
目次

JavaはWordで脚注と文末脚注を読む方法

脚注は文章の内容を補充し説明するときに役に立ちます、Wordを使用している中よく見える機能の一つです。今回の記事はWordで脚注と文末脚注を読む方法を紹介します。
注:この記事では、Wordライブラリー(Java Free Editionの場合はFree Spire.Doc)を使用して読み取ります。公式Webサイトからライブラリーを**[ダウンロード](https://www.e-iceblue.com/Download/doc-for-java-free.html)**し、ファイルを解凍して、JavaプログラムをlibフォルダーのSpire.Doc.jarにインポートできます。または、Mavenリポジトリを介してインストールおよびインポートします。

jarインポートの効果は次のとおりです。
![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/68131eee-3be4-4344-f9de-1cb555feab80.png)
テストドキュメントは、脚注と文末脚注を含めて次のとおりです

元記事を表示

AtCoder004をやった(Java)

AtCoder004をやった。
C問題のちに追記予定。。。間に合わない、いろいろと。

##[A](https://atcoder.jp/contests/abc004/tasks/abc004_1)
借金の算出方法を参考に実装

“`
import java.util.*;

public class Main {
public static void main(String[] args) throws Exception {
// Your code here!
Scanner scan = new Scanner(System.in);
ArrayList list = new ArrayList();

System.out.println(scan.nextInt() * 2);
}
}
“`

##[B](https://atcoder.jp/contests/abc004/tasks/abc004_2)
180度回転させたときの状態をイメー

元記事を表示

Minecraft:Bedrock Editionのパケットを解析するためのクライアントソフトウェアを開発した話

はじめましてHmy2001です。

**約3年前**にMinecraft:Bedrock Editionのパケットを解析するためのクライアントソフトウェアを
開発したのですが、そこでいろいろあったことを紹介したいと思います。

クライアントソフトウェアはJavaで開発し、[GitHub](https://github.com/hmy2001/MCBEClient)にて公開されています。

https://github.com/hmy2001/MCBEClient

#Minecraft:Bedrock Editionのパケット
Minecraft:Pocket Edition v0.15.0 alpha (リリース日時:2016年6月 **とても昔!**)から
パケットの暗号化機能が追加されました。
楕円曲線暗号とAESアルゴリズムを用いています。

楕円曲線ディフィー・ヘルマン鍵共有(ECDH)でお互いの公開鍵を共有し、
得られた共有鍵を用いてAESアルゴリズムでパケットを暗号化し通信するといった感じです。

#Javaの採用
楕円曲線暗号とAESアルゴリズムが言語ライブラリでサポー

元記事を表示

Apple Silicon M1でMacOSDnsServerAddressStreamProviderがロードできずエラーとなる

# はじめに
KINTOテクノロジーズでは開発端末としてWindows、Macを選択することができ
Macに関してはIntelチップ搭載のMacBook Proが貸与されます。

2021年はApple M1 Pro、Maxチップ搭載のMacBook Proが発売されたこともあり
開発端末にApple Silicon M1が増えることに開発者一同熱い眼差しを向けています。

今回は開発端末の選択肢に増えるであろうApple Silicon M1の技術検証時に発生したエラーのお話です。

# 事象
KINTOテクノロジーズのいくつかのシステムではSpring Boot 2.5.0が利用されています。
今回技術検証をしたシステムは、テストコード内で外部サービスのAPIを利用する部分でテスト効率化のために
Spring WebFluxを利用していました。

Spring WebFluxではデフォルトでNettyが利用されますが、Spring Boot 2.5.0ではバージョンを指定しない場合、
io.netty:netty-resolver-dns-native-macos:4.1.63.F

元記事を表示

マイクロサービスをdatadogで分散トレースする

この記事は [ZOZO #4 Advent Calendar 2021](https://qiita.com/advent-calendar/2021/zozo) 17日目の記事になります。

今回はマイクロサービスのdatadogの分散トレースに挑戦したのでそれについて記載しようと思います。

構成は以下になります。

|![Untitled Diagram.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/645177/c4d608de-cd9a-dbaf-c420-5a9036df169b.jpeg)|
|:-:|

処理の流れは以下になります。

1. Classic ASPからJava API【A】の登録APIを呼ぶ
1. Java API【A】はDynamoDBに処理開始のレコードを登録する
1. Java API【A】はKinesis Data Streams(以下、KDS)に登録情報を渡す
1. Java API【B】はKDSから情報を取り出し、処理を行う
1. Java A

元記事を表示

Javaを使って四角形をキーボード入力で動かしてみた

#はじめに
この記事はこの記事は、[SLP KBIT AdventCalendar2021](https://adventar.org/calendars/6706) 17日目の記事です。
Javaを使って画面に映した図形をキーボードからの入力で動かす処理を作ってみました。

Javaで2Dゲーム作ってみたいなと思い、とりあえずキーボードでキャラクターを動かせるようにしてみようという経緯で作りました。

#目次
[・プログラムの作成](#プログラムの作成)
[・コード](#コード)
[・まとめ](#まとめ)

#プログラムの作成

##環境
Java 16
Eclipse 4.19.0

##機能
画面に表示した四角形をキーボードの[W][A][S][D]で動かします。

#コード
“`Java
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JFrame;

元記事を表示

Apacheのhttpclientを利用してServiceNow REST API( Table API)をJavaでたたく方法

# 前記事
https://qiita.com/seino-ta/items/fe04d5cf71f126583774

ここではJavaのプレーンなものでGETを実行しました。

# Apacheのhttpclientを利用してGETを実行

“`Java
import java.io.*;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.util.Base64;

import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClientBuilder;

public class

元記事を表示

Spring Bootで簡単なWebアプリを作ってみたい!【CRUD処理を実装】

# 【はじめに】
この記事は[【マイスター・ギルド】本物の Advent Calendar 2021](https://adventar.org/calendars/6579)の12日目の記事です。
ためになる技術的な記事から、猫ちゃんに癒やされる記事、健康オタクになれる記事まで、バラエティに富んだ記事が投稿されているので、ぜひチェックしてみてください!

# 【経緯】
こちらの記事は前記事の[Spring Bootで簡単なWebアプリを作ってみたい!【準備からGet・Post表示まで】](https://qiita.com/takuch/items/3dc30caf45af06a01f41)の続きになります。
Javaの入門書である「スッキリわかるJava入門」を読み終わったので、なにかWebアプリを作ってみたいと思ったのがきっかけです。
ちょうど業務でSpring Bootが使われていたので勉強を始めたのですが、チュートリアルが少なく苦労しているので、備忘録的にまとめようと思っています。
この記事だけで、CRUDの実装はできるようになっていますが、前記事で説明した内容は省略していま

元記事を表示

Visual Studioでのgetter/setter一括追加のJavaショートカット

変数を右クリックして`ソース アクション`を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/31063/f374a201-84c7-80a7-eb9e-8d1c52cf9a39.png)

`Generate Getters and Setters`を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/31063/0a94364e-9c70-d194-901a-60a36169bff0.png)

Getter/Setterを追加したいフィールドを選択して `OK`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/31063/98abb5bc-3ae8-e0ab-e510-4c3674c55adc.png)

別のIDEを使っているけど、最近というか今日他の言語の開発では使っているVis

元記事を表示

AtCoder003をやった(Java)

AtCoder003をやった。
~~C問題解けそう、後で追記しよう。~~
C問題解けた!

##[A](https://atcoder.jp/contests/abc003/tasks/abc003_1)
さいころの大きさは与えられた入力値分の面があるということ、
各面の金額は、面番号 * 10000(円)

“`
import java.util.*;

public class Main {
public static void main(String[] args) throws Exception {
// Your code here!
Scanner scan = new Scanner(System.in);
ArrayList list = new ArrayList();

list.add(Integer.parseInt(scan.nextLine()));

double kyuryo = 0;

元記事を表示

もう怖くないSpring × Junit5 ~前編~

# はじめに
テスト?なにそれ、美味しいの?
テスト?俺の実装完璧だし。テストなんていらん。
テスト?Junit?なんかコワイ。。。((((;゚Д゚))))ガクガクブルブル

っていう人もそうでない人もJunitと触れ合いましょう。

## テストクラスの作り方
eclipseの例
### 1.作りたいテストを選ぶ
![20190725もう怖くないspring×Junit5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/263851/95e73472-c4f3-d348-f9b9-4d6ae8835f2c.png)

### 2.テスト作るウィザード立ち上げる
![もう怖くないspring×Junit5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/263851/03fc3588-24e5-6a16-a2b1-524cb4c3a223.png)

### 3.テストフォルダを選択する
![もう怖くないspring

元記事を表示

【Spigot】魔法を作る

この記事は [Minecraftサーバ開発・運営 Advent Calendar 2021](https://qiita.com/advent-calendar/2021/minecraft-server-dev) – 16日目の記事になります。

# 概要

Minecraft Java Editionのサーバーソフトウェアとして最も有名なSpigotで動作するプラグインで簡単な魔法を実装する記事になります。

# 設計

今回作るプラグイン 『MagicPole』 の設計はこんな感じで立ててみました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/666481/4f977125-c873-ee94-87ff-938f7c9712d3.png)

“`md
・コマンドではなく専用のクラフトレシピを用意する
・魔法の詠唱には10秒のディレイを用意する
・魔法を使うにはマナ、もとい満腹度を要求する
・魔法を詠唱すると **HPブースト・スピード** が付くようにする
“`

また要件

元記事を表示

クイックスタート WildFly

#はじめに

Advent Calendar 16日目です。
[2018年末のAdvent Calendar](https://qiita.com/advent-calendar/2018/nri-openstandia)にWildFly の記事を書いてから3年が経ちました。

https://qiita.com/tama1/items/829be5aacd81637ae73a

その時に使用したのが WildFly-14.0.1.Final で、2021年12月1日現在の最新バージョンは WildFly-25.0.1.Final なので、3年の間に11もバージョンが上がったことになります。

その間、どのような変化があったか、ざっと挙げてみると以下のようになっています。見出しレベルでしか書きませんので、詳細を知りたい方は公式サイトのリリースノートを見てください。

:information_source:長くなるので折りたたんでます。▲をクリックすると広がります。

WildFly更新履歴概要
WildFly-1

AWS SDK for Javaのバージョンごとのクライアントの設定

[ZOZO Advent Calendar 2021](https://qiita.com/advent-calendar/2021/zozo) の16日目の記事です。

# AWS SDK for Java
AWS SDK for JavaにはAWSのサービスを利用するためのJava APIが用意されています。

その中で接続タイムアウトやリクエスト再試行などのクライアントの設定を変更することができます。
AWS SDK for Javaには、バージョン1(v1)とバージョン2(v2)があり、アップデートする際に使用するそれぞれのバージョンの主なクラスとメソッドの対応をまとめました。

# v1、v2オプション対応表
以下のようにメソッドチェーンを使用して設定することを想定しています。

“`
new ClientConfiguration()
.withConnectionTimeout(connectionTimeout)
.withClientExecutionTimeout(clientExecutionTimeout)
.withRequestT

【Java】設計未経験者に読んでほしい「千鳥格子模様」の作り方3選

# はじめに
最近まともにプログラミングをしておらず、Javaの使い方や勘どころを思い出す目的で
リハビリのために簡単な模様を作ってみます。

## ■この記事のターゲット
– プログラミング経験はある程度経験あるけど設計は未経験

そんな方に向けた記事です。

この記事では目新しい技術はありませんが、
どのように作るか、なぜそう作るかに着目しながら模様の作り方を書いていきます。

※前置きが長いのでソースと結果だけサクッと見たい方は[「準備」](#準備)から読み進めてください。

## ■この記事を通して伝えたいこと

– 重要なのは目的に合ったやり方ができているかということ
– 設計をする場合は特に、「何をするか」ではなく「なぜそうするか」を考えてほしいということ

本記事を通して、これからシステム開発をしていく中での
設計の進め方やマインドセットの部分で少しでも参考になれば幸いです。

## ■「千鳥格子模様」とは?
↓↓こんな模様↓↓
![図1_千鳥格子B.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.co

単純な処理で思わぬ性能問題が出た話

Listに重複がある場合に出力するという、Java初心者練習用のようなプログラム。

“`
import java.util.*;

public class Main {
public static void main(String[] args) throws Exception {
List list = Arrays.asList(“yamada”, “nakamura”, “aoki”, “yamada”, “shimizu”, “nakamura”);

Iterator it = list.iterator();
List list2 = new ArrayList();
while(it.hasNext())
{
String name = (String)it.next();
if( list2.contains(name)){
System.out.println(n

ServiceNow REST API( Table API)をJavaでたたく方法

# ServiceNowのREST APIをJavaで実行
ServiceNowのREST API ExplorerではJavaでの方法がなく、キックに結構困ったのでここに残しておきます。
誰かの参考になれば幸いです。

“`Java
import java.io.*;
import java.net.ProtocolException;
import java.net.URL;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.security.SecureRandom;
import java.security.cert.X509Certificate;
import java.util.Base64;

import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.n

JAVA Springメソッド

備忘録として残します。
人に説明したりするのが僕にとって良いアウトプットになっているのでもし間違っていましたらご指摘宜しくお願い致します。

今後も追加予定です。

##equalsメソッド

equalsメソッドとは、文字列の比較を行うことができる命令文です。

比較といえば基本データ型である整数の比較があります。

基本データ型の整数比較とは異なり、equalsを使用する際は、参照データ型の文字列比較になる点が異なります。

eaualsメソッドでは、一致するときにtrueを返し、一致しない場合にはfalseを返します。

##アプリケーションプロパティズのcontext-pathについて。

“`
server.servlet.context-path=/spring_training
“`

HTML内でパスを通すときに以下のように

“`
/spring_training/lesson01_08/login
“`
spring_trainingのルート設定をしているということになるので、フォルダの前に明記する必要がある。

##コントローラーの命名

コントローラー

Javaを使用してHTMLをPDFに変換する方法

今回の記事でJavaを使用してHTMLをPDFに変換する方法を紹介します。変換することには、以下の2点に注意する必要があります。

##変換プラグインを使用します
対応するプラグインは、さまざまなシステムに応じてダウンロードできます。ダウンロード先:[windows-x86.zip](https://www.e-iceblue.com/downloads/plugins/java/plugins-windows-x86.zip)、[windows-x64.zip](https://www.e-iceblue.com/downloads/plugins/java/plugins-windows-x64.zip)、[macosx_x64.zip](https://www.e-iceblue.com/downloads/plugins/java/plugins-macosx-x64.zip)、および[linux_x64.zip](https://www.e-iceblue.com/downloads/plugins/java/plugins-linux-x64.zip)。ダウンロードした後、

MyBatis利用時に発生した例外から抜け出した話

はじめに

O/Rマッパーの一つであるMyBatisを使いQiitaのような質問投稿アプリを作成しています。
そこで悩んだ例外処理の発生原因について、忘備録兼同じことで悩んでいる方の手助けができればと思い投稿しました。
認識が異なる点があればご指摘いただけると嬉しいです。。。

org.apache.ibatis.binding.BindingException

①リポジトリクラスにアノテーションが抜けていた

“`
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.example.demo.repository.UserMapper.insert
at org.apache.ibatis.binding.MapperMethod$SqlCommand.(MapperMethod.java:235) ~[mybatis-3.5.7.jar:3.5.7]
“`

こちらの例外は、ユーザー情報を入力