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

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

Spring MVCで、Filterでリクエストボディとレスポンスボディをログ出力する

# やりたいこと
リクエストボディとレスポンスボディの内容を、Filterでログ出力したい。

“`bash:ログ出力例
202x-xx-xx xx:xx:xx.xxx DEBUG xxxx — [ xxxx] com.example.LoggingFilter : リクエストボディ = param1=value1&param2=value2
202x-xx-xx xx:xx:xx.xxx DEBUG xxxx — [ xxxx] com.example.LoggingFilter : レスポンスボディ = This is reponse body
“`

# 問題
`HttpServletRequest` や `HttpServletResponse` には、ボディを `String` で取得するようなメソッドは存在しません。前者には `getInputStream()` 、後者には `getOutputStream()` というメソッドがあり、これを使えばボディを取得すること

元記事を表示

paizaテスト環境(Java編)

paiza( https://paiza.jp/ )で問題を解いていると、「自分の好きな値で試したい」となるときがありませんか?
そんな時にはpaiza.IOがあるじゃないか、と言われるかもしれませんが、自分の開発環境で作ってる場合修正の度いったりきたりで煩わしいと思います(思いました)。
そこで私は自分のローカル環境でテキストファイルを標準入力にもってきて、対象ファイル(クラス)のmainメソッドを呼び出す、簡単な処理を一つ作りました。

それがこれです↓

“`java

package skillCheck;

import java.io.FileInputStream;
import java.io.InputStream;

import skillCheck.rankS.S002;

public class CallMethod {

public static void main(String[] args) throws Exception {

InputStream fileStream = new FileInputStream(

元記事を表示

Java 11 (OpenJDK: Eclipse Temurin) を Homebrew で macOS にインストールする

## 概要

– AdoptOpenJDK の後継である Eclipse Temurin を Homebrew で macOS にインストールする。

[Good\-bye AdoptOpenJDK\. Hello Adoptium\! \| AdoptOpenJDK Blog](https://blog.adoptopenjdk.net/2021/08/goodbye-adoptopenjdk-hello-adoptium/)

> The move from AdoptOpenJDK to Eclipse Adoptium is now complete. The same great community that brought you high quality Java binaries for the last four years at AdoptOpenJDK is now fully productive at Adoptium.

[Adoptium Celebrates First Release \| Adoptium Blog](https://blog.ado

元記事を表示

SpringBootアプリをService(デーモン)として起動する方法

# はじめに
SpringBootアプリは「java -jar」コマンドで実行できますが、ログアウトするとアプリが停止します。
起動し続けるためにはサービスとして起動させる必要があります。
今回はSpringBootアプリケーションをService(デーモン)として起動する手順を記載します。
※デーモンとは常駐プログラムのUNIX系OSにおける呼び名です。

# 環境
OS:CentOS7

# 手順
1. Fully Executable Jarの作成
2. confファイルの作成
3. Service(デーモン)の登録
4. Service(デーモン)の自動起動設定

# 1. Fully Executable Jarの作成
SpringBootアプリを常駐させるために通常のjarファイルは起動スクリプトを書く必要があるが、
Fully Executable Jarは起動スクリプトが組み込まれています。

作成方法は、pom.xmlに次のようなのタグを追加します。

“`xml:pom.xml

元記事を表示

Eclipse 2021-06(4.20.0)でlombok 1.18.20適用時のエラー

# 環境
* java version “16” 2021-03-16

# 現象と対処方法
以下のエラーが発生してjavaのエディタが開けなくなる。

“`java
java.lang.reflect.InaccessibleObjectException: Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int) throws java.lang.ClassFormatError accessible: module java.base does not “opens java.lang” to unnamed module @2b8bb184
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:357)
at java.base/java.lang.reflect.Access

元記事を表示

SpringBootアプリケーション(Jar)をCentOS7にデプロイ

# はじめに
SpringBootは実行可能ファイルとして jar 形式と war 形式の2種類のファイルを作成できます。
jar 形式はTomcatが組み込まれており、単体で実行可能です。
war 形式はTomcatがインストールされた環境にデプロイし、実行する必要があります。
今回はjarファイルをCentOS7にデプロイする手順を記載します。

# 前提

### 開発環境
IDE:eclipse(4.15.0)
Java:11
ビルドツール:Maven

### サーバー環境
OS:CentOS7(仮想マシン)
Java:11
Apache:2.4.6

# Jarファイル作成
プロジェクト上で右クリック > [実行] > [Maven install] を選択します。
完了後、[プロジェクトフォルダ] > [target]に「XXX.jar」ファイルが作成されます。
※ここではプロジェクト名「demo」のjarファイル作成
![jar作成.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1798

元記事を表示

SpringBootでHello World プロジェクト作成~実行

# はじめに
SpringBoot + Thymeleaf + Mavenで「Hello World」を表示させる手順を記載します。

# 開発環境
OS:windows10
IDE:eclipse(4.15.0)
Java:11
ビルドツール:Maven

# 手順
「Hello World」を表示させるまでの手順は下記です。
1. プロジェクトの作成
2. pom.xmlの編集
3. 画面の作成
4. Controllerの作成
5. 実行

# 1. プロジェクト作成
eclipseを起動します。
eclipseの[ファイル]→[新規]→[プロジェクト]を選択します。
![プロジェクト選択.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1798422/7f9d50b7-2165-81b4-263f-f07224f2c729.png)
「Spring スターター・プロジェクト」を選択し、「次へ」ボタンを押下します。
![Springスタータープロジェクト選択.png](https://qiita-i

元記事を表示

Javaで単語学習アプリを作ろう

こんにちは。プログラミングを勉強していると、一刻も早く単語学習アプリを作りたくなりますよね。え、ならないんですか???

単語学習アプリを作ってみたい同志たちの願いを叶えるべく、今回はJavaで、フラッシュカード式の単語学習ができる機能を作ってみました。アプリというほど整った形ではありませんが、ひとまずコンソールで使えるレベルになりました。

例によって、正しく動きはするものの最適な書き方であるか自信がない部分もありますので、何かお気づきになりましたらご指摘いただければと思います。

今回扱う項目は以下です。

– tsvファイルを作り、ソースコードで内容を読み込む。
– 読み込んだ情報をもとに、ランダムで単語を表示させる。

前提条件

– IntelliJ IDEA: 2021.1.2 (Community Edition)
– JDK:16.0.1
– MacOS:Version 11.1

## 1.今回やることの整理

今回は以下のような要件を満たした機能を作ります。

– 起動すると、日→英か英→日どちらかの学習モードを選べる
– スタートすると無作為に選ばれた単語が表示

元記事を表示

[Java]  エクセルで数式を追加・読み取る

Excelで、セルに数式や関数を入力して計算などの作業を自動的に行わせることができます。数式や関数を使いこなせれば、Excelでの文書作成がぐっと楽になると思いますので、今回は、free Spire.XLS for Javaという無料のライブラリを活用して、Excelで数式を追加・読み取る方法を紹介していきます。

下準備

1.E-iceblueの公式サイトからFree Spire. XLS for Java無料版をダウンロードしてください。

f:id:lendoris:202108181216</p></blockquote>
</blockquote>
<aside class='widget widget-post'>
<div class='tag-cloud-link'>Java</div>
<div class='tag-cloud-link'>数式</div>
<div class='tag-cloud-link'>エクセル</div>
<div class='tag-cloud-link'>追加</div>
<div class='tag-cloud-link'>読み取る</div>
</aside>
<div><a style='width:100%;' class='btn__link' href='https://qiita.com/iceblue/items/ddb74e05c65004624b42'>元記事を表示</a></div>
<h3 id=Thymeleafの日付比較

#Thymeleafの日付比較が賢い!
と感動したので、簡潔ですが投稿させていただきます。

#コード例
ControllerからModelに値を渡し、Thymeleafで表示する例です。

“`java:○○Controller.java

@GetMapping(“/index”)
public String index(Model model) {
model.addattribute(“today”, “2021-8-18”);
model.addattribute(“tomorrow”, “2021-8-19”);
return “index.html”;


“`

“`html:index.html

falseなので表示されない
trueなので表示される


“`
比較演算子で「>」とか使いたくなりますが、
Thymeleafでは以下のように書き換える必要があります。

元記事を表示

Java入門[インターフェース]

前回は抽象クラスについてまとめました。

https://qiita.com/tomorun/items/8c210446b586d343ef53

階層の上には`Human`クラス
その下には具体化された`Teacher`や`Engineer`、`Unployed`などが生まれました。

しかし、`Human`クラスを更に抽象化することもできますね。
どんどん抽象化していくことで、抽象クラスのフィールドやメソッドが減っていきます。

抽象クラスの中でも、更に抽象化されたクラスを`インターフェース`として特別に扱うことが可能になります。

`インターフェース`の条件は以下の2つ
1 すべてのメソッドは抽象メソッドであること
2 基本的にフィールドを1つも持たない

では、作成してみましょう。

`アクセス修飾子 interface クラス名`

“`java:Animal.java
public interface Animal{
// public abstract void run();
// public abstract void eat();
// public

元記事を表示

全く役に立たない小ネタ(Java)

変数定義時に自身を参照できる

“`java
static String foo = foo = “ABCD”;
String bar = bar = “ABCD”;
void hoge() {
String baz = baz = “ABCD”;
}
“`

実行結果(IDEONE)
https://ideone.com/48OXMp

元記事を表示

【画像処理解説】ポスタリゼーション(Javaソース付き)

#はじめに
画像処理を簡単に解説していきます。
下部にはJavaでのソースコードも載せているのでぜひご参照ください。
不定期にはなりますが、随時更新していく予定です。

#ポスタリゼーションとは?
階調変更アルゴリズムであり、色の階調を変更する画像処理です。
一般的な画像は0から255の256階調で成立しています。
これをルックアップテーブル(LUT)を用いて、任意の階調数に変更します。

似たような処理として減色処理があります。
減色処理では、階調を減らすというよりも、画像情報を残しつつ情報量を減らすことが目的となります。
ポスタリゼーションは画像を加工してアートみたいにできるのが特徴ですね。

#LUTとは?
画素値変換用の参照テーブルのことです。
ポスタリゼーションの場合、階調数を$t$とするとLUTは以下の式で定義されます

“`math
lut(i) = \left[\left[\frac{i\times t}{256}\right]\times\frac{255}{t-1}\right]
“`

階調数が4の時、画素値100は85に、画素値200は255に変換されます。

元記事を表示

ただただ公式ドキュメントのリンクを並べただけ

タイトルの通り、ただ公式ドキュメントのリンクを並べました。
私が勉強した or 勉強に使いたいな、と思っている範囲のものです。
読んだ感想なども記しました。
適宜、更新するかもしれません。

# Java関係

### Java
|タイトル |リンク |その他 |
|—|—|—|
|ドキュメント |https://docs.oracle.com/javase/jp/11/ |Java 11 |

Javaに関しては、公式を見るよりも市販の本とかの方がいい気がしています。

### Spring Boot

|タイトル |リンク |その他 |
|—|—|—|
|チュートリアル |https://spring.io/guides |英語 |
|チュートリアル |https://spring.pleiades.io/spring-boot/docs/current/reference/html/getting-started.html |日本語|

日本語だと、最近こちらの本が出たようです。amazon prime会員だとタダで読めるようです。
https

元記事を表示

【画像処理解説】メディアンフィルタ(Javaソース付き)

#はじめに
画像処理を簡単に解説していきます。
下部にはJavaでのソースコードも載せているのでぜひご参照ください。
不定期にはなりますが、随時更新していく予定です。

#メディアンとは?
日本語では中間値といい、名前の通り数集合の中間に位置する数のことです。

簡単な例ですが、あるテストを受けた人が7人いて、点数分布は以下の通りでした。
$\begin{matrix}
34 & 36 & 39 & 42 & 44 & 48 & 100
\end{matrix}$

この例において平均点を計算すると、49点となります。
直感的には49点が真ん中というのは高いように感じませんか?
2位ですら平均点以下となってしまっています。
これは一人だけ100点という高得点を取っている人がいるため、平均点が高めに出ているのです。

次に、メディアンを計算してみましょう。
7人の中間なので、4位の点数である42点が採用されます。
この点は4位の点数そのままなので、1位の100点には引っ張られていません。
メディアンのほうが「真ん中」という感じがしますよね?

以上、説明した通りメディアンには外れ値(極端

元記事を表示

Jasper Report で帳票を縦横4分割で作成する。

# 初めに
Jasper Report で帳票をA4用紙4分割で作成する方法をまとめます。
印刷順序はZ順序で印刷されます。

# 前提条件・環境
・TIBCO Jaspersoft Studio-6.17.0

# 手順
1. PageFormat から Colums を 2 に、Print Order を Horizonal に設定します。
2. BandDetail の高さを PageFormat の高さの 1/2 で設定します。

## 1. PageFormat から Colums を 2 に、Print Order を Horizonal に設定します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1864623/e2c8ccfb-8535-3a15-1cbc-5a77e3b4d3dd.png)

## 2. BandDetail の高さを PageFormat の高さの 1/2 で設定します。

![image.png](https://qiita-image-stor

元記事を表示

【java】ロト6で夢を買おう~申込番号を決めてみよう~

#1.きっかけ

ここ1年半話題といえば__「コロナ絶賛感染拡大中!一年半前の数人から今は5000人に伸びました!」__
という話でニュースがにぎわっている。
__`オリンピックで日本経済が盛り上がる予定だったけど、夢に終わってしまった。`__
さらに、と悪いことを挙げればきりがない。

そんな暗い空気を背負って、テレワークを終えて近所を歩いていた。
私と同じ暗い空気をまといながらも、やけに野望に燃えた目の人々が集まっている場所がある。
高額当選を叩き出した宝くじ売り場だ。
その集まりの先に「キャリーオーバー発生中!」「サマージャンボ」のポスターが見えた。
「では〇〇と〇〇で五万円になります。」と無機質な店員さんの声も聞こえる。
渋い顔をしたオジサンが、財布からお札を取り出している。
サマージャンボやロトの当選金額の大きさと、列に並ぶ人の熱気に呑まれてしまった。
__「これもし当たったら、どうしよう???」__と根拠のない自信が溢れ出してきた。
サマージャンボは、自分で番号を決められないけど、ロト6、ロト7は自分で番号を決められるということも分かった。
しかもキャリーオーバー発生中で、

元記事を表示

Java入門[抽象クラス]

#### 抽象クラスとは
その名の通り、抽象的なクラスです。
具体的な役割は子クラスに任せます。

抽象クラスを作成することで、予期せぬインスタンス化やオーバーライド忘れを防ぐことができます。(オーバーライドは後述)

抽象クラスの作成は以下の通りです

`アクセス修飾子 abstract class クラス名`

抽象メソッドはこのような形
`アクセス修飾子 abstract 戻り値 メソッド名();`

では、前回作成した`Human`クラスを抽象クラスにしてみましょう。

“`java:Human.java
public abstract class Human {
private String name;
private int money;

public String getName(){
return this.name;
}
public void setName(String name){
this.name = name;
}
public int getMoney(){
return this.money;

元記事を表示

[Java] Java Bronze SE の試験に合格した勉強方法

# はじめに

`Java Bronze SE 試験番号1Z0-818`の試験に約1ヶ月で合格したのでその勉強方法をまとめました。
目安としては、Java以外のプログラミング言語の基礎は理解している状態で1日1〜2時間ほど勉強しました。
勉強方法はたくさんあるので自分にあった方法で学ぶことが一番ですが、やる気はあるけど、どう勉強したら良いのか悩んでいる方の手助けになれたら幸いです。

# 合格のためのステップ
## ステップ1
まずは参考書を購入しましょう。
オラクル認定資格教科書と問題集を購入することをお勧めします。

[オラクル認定資格教科書 Javaプログラマ Bronze SE(試験番号1Z0-818) / 山本 道子(著)](https://www.amazon.co.jp/%E3%82%AA%E3%83%A9%E3%82%AF%E3%83%AB%E8%AA%8D%E5%AE%9A%E8%B3%87%E6%A0%BC%E6%95%99%E7%A7%91%E6%9B%B8-Java%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E-Bro

元記事を表示

VSCodeにSpringBootの環境を構築しよう!!

#環境
* windows
* JDK11
* Maven3.8

# step1:必要な拡張機能のインストールをしよう
下記をインストールしよう!
![スクリーンショット (5).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/893794/9c7a64d6-49a5-0934-5e21-67167a778ca8.png)
![スクリーンショット (7).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/893794/0b575c69-183f-1546-7c8a-fc8d795dbbbb.png)
![スクリーンショット (6).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/893794/96f79f8d-88fa-46e5-9b57-357a24dd7851.png)

# step2:VSCodeにJavaとMavenの設定をしよう
1

元記事を表示

OTHERカテゴリの最新記事