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

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

OpenJAVA で Spring Boot

# はじめに
Spring Boot って便利ですよね!

Javaで少し規模が大きなWebアプリケーションを開発しようと思ったら、アプリケーションフレームワークが必要になると思いますが、EJBにしてもStrutsにしてもSpring Frameworkにしても、Javaのフレームワークはなかなか手ごわい。
そこへ行くと、Spring Tool Suiteの使いやすさもあって手軽に本格的なアプリケーションを構築できるSpring Bootは本当に便利だと思います。

ところが、Spring BootのデフォルトJDKって**Oracle Java SE 8**だったりします。
OracleのJDKはライセンス条項が変更されて、開発や個人の学習用途では無償利用できるけど会社の業務として利用する場合は注意が必要ですね。
そんなわけでOpenJDKで使えないものかと考えました。

# いきなり結論から
まず、できたのかできないのかが気になるところなので結論から。
できます。全然問題ありません。少なくとも私が作成した程度のWebアプリでは
今のところ問題は出ていません。
というわけで、私の環境

元記事を表示

Coursierで特定のmaven artifactの依存関係を確認する

Androidでの開発やJavaなどのJVM言語での開発で、あれ、このライブラリって何に依存しているんだっけ?って思うことよくありますよね?
皆さんはどのように確認しているでしょうか?
https://mvnrepository.com/ などのサイトを見たり、 `./gradlew dependencies`で確認するなどさまざまだと思います。

今日はScalaで書かれたCoursierというCLIツールが便利だったので紹介します。
https://get-coursier.io/

# 使い方
ターミナル上で `coursier resolve maven_artifact`という感じで確認できます

“`
$ coursier resolve io.circe:circe-core_2.12:0.10.0
io.circe:circe-core_2.12:0.10.0:default
io.circe:circe-numbers_2.12:0.10.0:default
org.scala-lang:scala-library:2.12.6:default
org.scala-

元記事を表示

【Kotlin】面積当たりの容量が大きいpngを生成したかった【Java】

# やりたかったこと
とある案件で大量の重めの`png`画像サンプルが必要になりました。
一方、単純に四角を`fill`するような形で画像を生成した場合、圧縮されてしまって高々数KB程度になってしまうなど、容量が確保できませんでした。
必要な画像のフォーマットも決まっていたため、単純に面積を増やして容量を稼ぐことも難しかったです。

# 方針
圧縮というものは大概以下2点に当てはまる場合強く作用します。

– 同じパターンが連続する
– 同じ色が連続する

よって、「ランダムな色のランダムな線を沢山引けば圧縮しにくいだろう」というノリでやりました。

目標は1940 x 500のサイズで1枚2MBです。
それを達成していれば一旦構わないため、更なる大容量化や処理時間に関しては気にせずにやっていきます。

# 実装
`${プロジェクトルート}/build/generated`ディレクトリに2000枚の画像を生成するサンプルです。
`lines`が100000有れば安定して2MBを超えてくれました。

`parallelStream()`しているのは「ちょっとは早くなるんじゃね」程度のノリ

元記事を表示

JDKの設定方法をまとめてみた【VSCode】

VSCodeでJDKのパスを設定する方法をまとめてみました。
今回使ったJDKはOracleJDKとAdoptOpenJDKです。
まだJDKをダウンロードしていない方は以下のサイトでダウンロードしましょう。
おすすめはAdoptOpenJDKです。

AdoptOpenJDKのダウンロードサイト
[https://adoptopenjdk.net/](https://adoptopenjdk.net/)
OracleJDKのダウンロードサイト
[https://www.oracle.com/java/technologies/javase-downloads.html](https://www.oracle.com/java/technologies/javase-downloads.html)

## JDKを設定する前に知っておきたいこと

### パスとは何か

パスとはファイルやフォルダを保存している場所のことです。
JDKのデフォルトのパスは
AdoptOpenJDK `C:\Program Files\AdoptOpenJDK\バージョン`
OracleJDK `C:\P

元記事を表示

java SE 11 Silver 合格体験記【現役理系大学生ver】

#概要
java SE 11 Silver のテストを受けてきたので体験記を残しとこうと思います。
Silverはたくさん体験記があるみたいなので、実務経験がなくプログラムを作ったことが無い人に向けたことに重点を置いて書こうと思います。
#使用した本
徹底攻略Java SE 11 Silver問題集
https://www.amazon.co.jp/%E5%BE%B9%E5%BA%95%E6%94%BB%E7%95%A5Java-SE-11-Silver%E5%95%8F%E9%A1%8C%E9%9B%86%EF%BC%BB1Z0-815%EF%BC%BD%E5%AF%BE%E5%BF%9C-%E5%BE%B9%E5%BA%95%E6%94%BB%E7%95%A5%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-ebook/dp/B07YWKWBBD/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=3AOWI1BXV0Y5G&dchild=1&keywords=java+se+11+

元記事を表示

【Java入門】配列の操作について(1次元配列、2次元配列の宣言、インスタンス化、初期化および使用)

#目的

Java言語を含めたプログラミングの学習を始めたばかりの方、既学習者の方は復習用に、
今回は**配列**について学ぶために書いています。

[【Java入門目次】](https://qiita.com/morioheisei/items/6c7fc063c26e63d890ac)
・[変数と型](https://qiita.com/morioheisei/items/3d27e82d6cd88068dded)
・[型変換](https://qiita.com/morioheisei/items/28ab5fd69570e01cd317)
・[変数のスコープ](https://qiita.com/morioheisei/items/c56ab32b68ce92d32206)
・文字列の操作(準備中)
・配列の操作 ←今ここ
・演算子(準備中)
・条件分岐(準備中)
・繰り返し処理(準備中)
・クラスについて(準備中)
・抽象クラス(準備中)
・インターフェース(準備中)
・カプセル化(準備中)
・モジュールについて(準備中)
・[例外処理について](https://qiit

元記事を表示

Stateパターンのメリットを映画のレイティング判定で説明する

ユーザが見ることができる作品を、映画のレイティングシステムに従って選別できるように実装します。

映画のレイティングシステムとは、年齢制限する規制のことです。
G:全年齢
PG12:12歳以上
R15+:15歳以上
R18+:18歳以上
といった区分があります。

# クラス図
赤枠内がStateパターンで、それをUserが使用するという形をとっています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/190809/e19b86ca-9761-721c-ec1a-ee9cc8b7de86.png)
RatingSystemをインターフェースとし、G/PG12/R15で各制限を実装します。
R18が無いのは、R18の映画を扱っていないという想定です。

# メリット
・年齢制限をRatingSystemの実装クラス(G/PG/R15)に限定できる。(実装の局所化)
・R18映画を扱うことになり、仕様追加になっても容易に対応できる。(変更容易性)

# ソースコード
## interface

元記事を表示

Spring Bootで問い合わせアプリ作成

今回もSpring Bootで、勉強も兼ねてアプリ作成しました。
随時機能追加する予定です。

#使用環境
・Windows10 (64bit)
・spring-boot:2.2.6
・Eclipse:4.9.0
・H2
・Bootstrap

#完成図
簡単な問い合わせアプリです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631044/29340e64-05ae-2432-6bbe-f03a70dbfcf7.png)

#Entity

“`java:Inquiry.java
import java.time.LocalDateTime;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

import org.springframework.format.annotation.DateTimeFormat;

@Ent

元記事を表示

SpringframeworkのコントローラーをJunitでテスト

#対象読者
・SpringFramework初学者
・Junit初学者
・JunitでSpringframeworkのコントローラーをテストしたい!!!

#プロジェクトver
・Springframework 4.1.6
・Junit 4.1.2
・servlet 3.1.0
・hamcrest 2.2
・mockito 3.3.3

#ファイル構造
“`
//メイン層
src.main.java
|
+— jp.co.demo
+— controller
+— dto
+— form
+— entity
+— mapper
+— service

//テスト層
src.test.java
|
+— jp.co.demo
| +— controller
|
src.test.resources
|
+—

元記事を表示

NEM(現行バージョン)のノード(NIS1: NEM Infrastructure Server)の構築方法

NEMブロックチェーンでは、現在、次期バージョンSymbolのローンチに向けて、テストネット上で様々な準備が行われています。そういったタイミングのさなかでもあり、次期バージョンSymbolのテストネットのノードの構築方法については、ドキュメントや参考情報が非常に充実していると感じます。
しかし、意外にも現行バージョンのNEMブロックチェーンのノードの構築方法については、ドキュメントや参考情報を探すのに苦労しました。(私自身のググラビリティの問題もあるかもしれません…)
自身の備忘録のためにも、Google Cloud Ploatform上にNEMの現行バージョンのノード(=NIS1と呼ばれる… NEM Infrastructure Serverの略称)を構築した方法をこの記事にまとめておこうと思います。
何か間違いや、より良い方法等あれば、ぜひ教えて頂けると助かります。よろしくお願いします。

# 概要

1. ファイアーウォールルールを作成
1. GCEでVMを作成しSSHでログイン
1. Javaのインストール
1. NIS1の本体をダウンロードして解凍
1. ノードの起動

元記事を表示

javadocコマンド入門

# 第6章:Javadocを生成する

今回は、Javadocの仕様や書き方といった実装面ではなく、
あくまでもjavadocコマンドの使い方、動作に絞って触れていきたいと思います。
コメントの書き方に関しては、Javadocの書き方に関する書籍などを学習した際に
まとめてみたいなと思います。

## Javadocの概要
Javadocコマンドは、Javaソースファイルにある宣言、コメントを解析し、デフォルトでは
public クラス、protected クラス、入れ子にされたクラス (匿名の内部クラスは除く)、
インタフェース、コンストラクタ、メソッド、およびフィールドについての実装ドキュメントを
HTML形式で生成します。

## Javadocのページ一覧
以降の説明をしやすくするため、javadocコマンドの成果物であるJavadocにはどういった
ページが生成されるのか、以下に例を示します。

### 基本内容ページ

– **概要ページ**(overview-summary.html)
Javadocのトップページ。API、パッケージセットという全体の単位の概要が書か

元記事を表示

駆け出しエンジニアに与えられがちなタスク

##メーカーの社内SEになって、早一年

 こんにちは、ひかるです。私はとあるメーカーに、社内SEとして新卒入社しました。大学時代はプログラミングなんてやったことがなく、入社後の研修で知識を詰め込んだのですが、まあ現場ではなかなか通用しないこと……
 今回は私がそのとき、現場で先輩からもらったタスクの一部を紹介します。こういった「初心者がもらえる仕事」というのは、どこの職場でも似たようなものだと思ったので、何かしら参考になればと思います。なお、私の職場は、言語はJava、テンプレートエンジンにStruts、ビルドツールにAnt、バージョン管理はCVSと、レガシーな環境ですので、その点を踏まえていただけると幸いです……

##①画面に入力項目を増やして、DBに登録してくれ

先輩「ユーザーから、製品の在庫区分を追加できるようにしてくれって要望が来たから、実装してね」
一年目私「はい(白目)」

 ありがちなタスクですね。画面に入力項目を増やして、それをDBに登録するという実装です。このタスクでは以下の知識が求められます。

+ **htmlとテンプレートエンジンの連携における仕組み*

元記事を表示

Scanner 正常入力になるまで無限ループ

#Scanner 正常入力になるまで無限ループ

##[前回](https://qiita.com/hiroki2525/private/2d9bd9787ea1be6ca1ad) の振り返り

[前回](https://qiita.com/hiroki2525/private/2d9bd9787ea1be6ca1ad)はtry-catch構文を使って、例外クラスが使われた時の処理を実装するという内容をやりました。

今回は入力のパターンを全て考えてif文、try-catch構文、while文を使い入力が異なる場合ループさせる方法についてご説明します。

てことで例題いっちゃいましょ〜!

##例題

・入力が正の整数値の場合だけ数値を出力、他の場合は入力に戻る。

コンソール
スクリーンショット 2020-05-30 17.43.38.png工数管理ツールを開発してみた

#やったこと

工数を管理するウェブアプリを開発しました。
言語:Java(Spring), JavaScript

手順
1. プロジェクトを作成(この際に、プロジェクトコードを登録する)
2. 1.で登録したプロジェクトコードを入力することで、追加/編集/閲覧したいプロジェクトに遷移
3. タスク追加(タスク名、工数、開始日、終了日、担当者名など)
4. タスク閲覧(担当者がある期間にどんなタスクをどれだけの工数で終えたのか、プロジェクトの担当者がそれぞれどれだけの工数を費やしているか、など)

#画面
プロジェクトコード入力画面
スクリーンショット 2020-05-30 13.53.52.png

タスク追加(および修正)画面
スクリーンショット 2020-05</p></blockquote>
</blockquote>
<aside class='widget widget-post'>
<div class='tag-cloud-link'>Java</div>
<div class='tag-cloud-link'>JavaScript</div>
<div class='tag-cloud-link'>初心者</div>
<div class='tag-cloud-link'>Thymeleaf</div>
<div class='tag-cloud-link'>spring-boot</div>
</aside>
<div><a style='width:100%;' class='btn__link' href='https://qiita.com/dumbbell/items/4e72fa9345705f2e4177'>元記事を表示</a></div>
<h3 id=log4j2

いつも忘れるので、ここでメモ。

## jar ファイル
最低限、以下のファイルが必要。
log4j-core-2.13.3.jar
log4j-api-2.13.3.jar
(2.13.3 はこれを書いている時点の最新バージョン)

★ commons-logging と接続したい場合は、log4j-jcl-2.13.3.jar も必要です。
詳細はこちら:[https://stackoverflow.com/questions/41462181/commons-logging-with-log4j2](https://stackoverflow.com/questions/41462181/commons-logging-with-log4j2)

## pom.xml
“`xml:pom.xml


org.apache.logging.log4j

Log4j 1.2.12 のadditivity, ConsoleAppender

注: [On August 5, 2015 the Logging Services Project Management Committee announced that Log4j 1.x had reached end of life. ](https://logging.apache.org/log4j/1.2/manual.html
) / [Log4jバージョン1のサポートは終了](https://www.infoq.com/jp/news/2015/09/log4j-version-1-reaches-eol/)
…なのだけど今更log4j-1.2について調べている。

元々
`log4j-1.2.8`
しか居なかったアプリケーション上に

`log4j-1.2.12`
が同梱されたことにより何か振る舞いがおかしい。
ログが2重に出る。そして意図せずSystemOutに出る…
この2点に関するメモです。

### 2重に出る

まず2重に出る点、関係していそうなのはこの辺。`Additivity`

[log4jのLoggerの階層構造とadditivityの振

元記事を表示

【入門】AndroidStudio Hello Worldをエミュレータ上に表示させる

#はじめに
AndroidStudioでプロジェクトをビルドして、HelloWorldをエミュレータ上に表示されるところまで確認したいと思います。AndroidStudioインストール後の動作確認として試してみます。

#環境と前提条件
– windows10(64bit)
– AndroidStudio 3.6.3
– AndroidStudio 日本語化済み
– API 29(Android 10.0)

インストール方法は[こちら](https://qiita.com/kepin/items/cccb27d5ba4857d46bb2)
日本語化は[こちら](https://qiita.com/kepin/items/213562dafea8c96e4fdf)
を参考にしてみてください。

#プロジェクト作成
まずはプロジェクトを作成します。

はじめに、AndroidStudioを起動します。
下記のようなウィンドウが開いたら新規AndroidStudioプロジェクトの開始を押下します。
![2020-05-29 (23).png](https://qiita-image-sto

元記事を表示

Raspberry Pi 4 で Minecraft サーバ

Minecraft サーバを AWS で作る
「https://qiita.com/nanbuwks/items/601832b2da00b451d55d」

では、あっけなく動いたのでその知見を元に Raspberry Pi 4 で Minecraft サーバを作ってみる。

# 環境

– Raspberry Pi 4 Model B 4GB (Raspberry Pi 3 Model B でも検証したが厳しい感じ)
– 2020-02-13-raspbian-buster-lite.zip
– 有線接続LAN

# インストール

micro SD カードの書き込みはこちらの方法を使用

「Ubuntu Linux で Raspian ZIP ファイルを microSD カードに書き込む」
https://qiita.com/nanbuwks/items/2c296549ff72dacf7adc

また、/boot に ssh を作っておきます

# 初期設定

ログオンしてからの初期設定は

“`

$ sudo apt update
$ sudo apt upgrad

元記事を表示

Javaのメリット・デメリット

# はじめに
JavaというAndroidやゲームに使われたりする素晴らしい言語のメリット・デメリットをまとめました。

※これはJavaについての記事です。JavaScriptは全く別の言語であるので注意してください。
# メリット
## オブジェクト指向
オブジェクト指向とは、プログラムの可読性をあげるものです。リストに追加するにはaddメソッド(処理のまとまり)を呼び出すという直感的なプログラミングができます。Javaにはクラスなどでオブジェクト指向のプログラミングができます。

“`java:リストにアイテムを追加する
list.add(item);
“`

## 型
型とは変数の値のタイプ(文字列、数値など)のことです。例えば変数numに数値が入っていると仮定して作られたプログラムがあるとします。しかしそのプログラムを使用する際に間違えて文字列を渡してしまうと実行時に数値でないためエラーがでます。Javaならコンパイルという文法チェックで型が違うと実行できません。面倒かと思いますが、実行前に気づけることはメリットです。

“`java:型を使った例
int num;//

元記事を表示

Java14×Spring Boot2.3×JUnit5でHelloWorldしたよ〜

## はじめに

こんにちは![macでSTSの環境構築を行った](https://qiita.com/akane_kato/items/fff46dfa34f97f95dc88)者です。
今回は「HelloWorldファイルとHelloWorldのテストコードファイルを作成し、jarに保存してmacで実行してみる」ところまで実施しました。
前回同様、[Spring徹底入門](https://www.shoeisha.co.jp/book/detail/9784798142470)を参考に進めました。簡単な手順ですが、バージョンのせいかJUnitで実行する辺りやjarにする辺りで思いの外詰まったので記事にしました。
ぜひ俺の屍を越えていってください。

### 使用環境とバージョン

– macOS Catalina
– jdk14.0.1
– JUnit5
– Maven 3.6.3_1
– STS 4.6.1
– Spring Boot 2.3

## Spring Initializrでプロジェクトの雛形を作る

まず[Spring Initializr](https://sta

元記事を表示

OTHERカテゴリの最新記事