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

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

分子系統学演習をdockerで

分子系統学演習 データセットの作成から仮説検定まで 田辺晶史 2015/10/20
https://www.fifthdimension.jp/documents/molphytextbook/molphytextbook.ja.html

# java

最適な Java の Docker イメージを選びたい
https://k11i.biz/blog/2018/05/17/base-docker-images-for-java/

Javaのサポートについてのまとめ2018
https://qiita.com/nowokay/items/edb5c5df4dbfc4a99ffb

JDKの公式Dockerイメージを使って手っ取り早くjshellを使うメモ
https://qiita.com/hi5san/items/d2f2fc77683530073267

“`
$ docker run -v /tmp/work:/tmp/work -it openjdk /bin/bash
docker: Cannot connect to the Docker daemon at uni

元記事を表示

Effective Java 第3版 「ほぼ全章」を「読みやすい日本語」で説明してみました。

Effective Javaは「一人前」のJavaエンジニアになるために避けては通れない書籍だと思います。特に公開APIを作るような立場にいるエンジニアは、この書籍に書かれてあることを把握していないと、まともなものを作れません。

素晴らしい書籍だということは言うまでもありませんが、一方で「要するにこういうことだよね」という理解をしづらい書籍であるとも感じます。

その原因は、おそらく以下のとおりでしょう。

* 表現が回りくどいです。
* 全部で90の項目がありますが、項目内の構造が分かりづらいです。
* コード例が必要以上に複雑な場合があります。

内容の本質そのものはあまり難しくないのに、こういった理由でこの書籍の敷居が上がるのは、何と言うかもったいないと思います。

そこで、本記事では(ほぼ)全項目について、できるだけ「読みやすい日本語」で内容を説明してみたいと思います。

ただし、あまりにも当たり前の話だったり、読むのが簡単な項目などについては、解説を省略しました。また、私見も混ざっています。そういった前提でご覧いただければと思います。

なお、Effective Java

元記事を表示

Java 14で個人的に気になる機能を使ってみた記事

# はじめに
2020/3/17にJava 14がリリースされました。
以下の機能がリリースされたようです。
本記事の対象に〇がついているものについて少し触ってみたので後で紹介します。

|JEP(※1) | 概要|本記事の対象|
|—|—|—|
|305 | [Pattern Matching for instanceof (Preview)](https://openjdk.java.net/jeps/305)(※2)|〇|
|343 | [Packaging Tool (Incubator)](https://openjdk.java.net/jeps/343)(※3)|×|
|345 | [NUMA-Aware Memory Allocation for G1](https://openjdk.java.net/jeps/345)|×|
|349 | [JFR Event Streaming](https://openjdk.java.net/jeps/349)|×|
|352 | [Non-Volatile Mapped Byte Buffers](https:/

元記事を表示

エンジニア体験会での初心者への教え方(Java,Eclipse)

先日、自社で行っているプログラミング体験会で、未経験者に「プログラミングとは」を話す機会を頂いたので、次の機会の為に良かったことや改善していきたいことを自分用にまとめておきます。

## –はじめに–
【体験会に来る人の経歴】
体験会には様々な経歴の人が来ます。
・大学の時にJava学んでました~
・接客業をしていてパソコンはあまり触ったことないです~
・転職を考えている中でIT業界に興味を持ちました~
など、他業種や未経験の人が多かったです。

【体験会に来る人が求めていること(体験会後の交流会で多かった質問など)】
・完全未経験
→ プログラミングってなんか難しそう・・・
→ どうやって作るの?
・業務未経験だけどちょっと触ったことある(大学とか)
→ この会社で大丈夫か?(普通に企業説明会的な感じ)
→ エンジニアの仕事ってどんな感じ?

レベルもまちまちなのでその人たち全てに同じようなレベル感で教えることはできない。

今回は完全未経験向けに教える方法をメモしていきたいと思います。
この会社で大丈夫かどうかは体験会が終わった後にでも答えてあげましょう。

##プログラムとは

元記事を表示

Java for All!みんなのJavaを読みました #minjava

みんなのJavaを読みました!

Javaでログイン機能を作ってみた

![キャプチャ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/566570/d065ef0e-edd0-a4d9-d56f-ce5a713a038b.png)

# 作った動機
訓練校でアプリを8人チームで制作することになったのだが、機能要件にログイン機能が必須だった。
登録したロールによって表示できるページを分けたいが、やり方がいまいちわからなかった。
3連休だし作ってみよ!

# 機能
+ 新規登録。
+ ログイン、ログアウト。
+ 管理者とユーザーでロール分け。
+ 管理者には管理者ページしか表示されない。
+ ユーザーにはユーザーページしか表示されない。
+ ログインしてない場合はログイン画面と新規登録画面へ誘導。

# よかったこと
4時間くらいで作れた。
3か月前なら3~5倍くらい時間がかかっていたと思う。
成長してるんやなあ。

# 環境
Java version 13.0.1
mysql 8.0

# DAO
“`Java:AccountDAO.java
package dao;

元記事を表示

java コールバックパターン

javaでコールバックパターンの簡単なサンプル

文字列を
・CamelCase → snake_case
・小文字 → 大文字
した後に表示する処理を例にやってみる

### コールバックパターンを用いない場合

“`NoCallbackPattern.java
public class NoCallbackPattern {
/**
* CamelCaseからsnake_caseへ変換
*/
private String camelToSnake(String input) {
return CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, input);
}

/**
* 小文字から大文字へ変換
*/
private String capitalize(String input) {
return input.toUpperCase();
}

/**
* 変換して表示
*

元記事を表示

Java 14 (OpenJDK: AdoptOpenJDK) を Homebrew で macOS にインストールする

## 今回の環境

– macOS Catalina 10.15.3

## AdoptOpenJDK 14 をインストールする

公式資料を参考にしてインストールする。
[GitHub \- AdoptOpenJDK/homebrew\-openjdk: AdoptOpenJDK HomeBrew Tap](https://github.com/AdoptOpenJDK/homebrew-openjdk)

“`
$ brew tap AdoptOpenJDK/openjdk
$ brew cask install adoptopenjdk14
“`

## java_home コマンドでインストールされたディレクトリの場所を確認する

“`
$ /usr/libexec/java_home -v 14
/Library/Java/JavaVirtualMachines/adoptopenjdk-14.jdk/Contents/Home
“`

## 環境変数 JAVA_HOME と PATH を設定する

必要に応じて ~/.bashrc や ~/.zshrc などに記述す

元記事を表示

SpringBoot + IntelliJで簡単なHelloWorldを表示

# 概要

SpringBootを使用すると、Javaを使用したWebアプリを比較的簡単に作成することができます。

今回、Spring BootとIntelliJを使用した、簡単なHelloWorldを表示するプログラムを作成して行きたいと思います。

また、以下のリポジトリに今回作成した内容を掲載しております。

https://github.com/kymx1983/first_springboot

# 1.使用する環境

今回使用する環境は以下の通りです。

## 1.1 Java

Javaのバージョンは特に指定しません。サンプルの例ではJava11を使用しています。

Javaは以下からダウンロードできます。

https://www.oracle.com/java/technologies/javase-downloads.html

まず、インストールしたいバージョンの`JDK Download`をクリックします。

[![Image from Gyazo](https://i.gyazo.com/e09c33095284819e362fc577e5be4d13.pn

元記事を表示

GWT 2.8.2 と Maven で Hello World する

[Liberica JDK 11 の JavaFX 11 (OpenJFX) で Hello World する](https://qiita.com/takuya0301/items/39b5de96cd671bc3bb76)を書いて、[JavaFX で作ったミニゲームを GWT で Web ブラウザに移植してみる](https://qiita.com/old_horizon/items/5616ba2eaa22b0d7e996)を読んで、[GWT](http://www.gwtproject.org/) ってあったなぁと懐しく思い、[Getting Started](http://www.gwtproject.org/gettingstarted.html) をやってみたのでメモっとく。

最近の Web アプリケーションで、REST という概念との整合性に疲れてきているので、クライアント開発をする上で GWT って素晴らしいんじゃないかなと思ったりしている。[サーバーとブラウザークライアント間の RSocket 通信を Spring Boot と rsocket-js で実装する]

元記事を表示

Liberica JDK 11 の JavaFX 11 (OpenJFX) で Hello World する

『みんなの Java OpenJDK から始まる大変革期!』を読んでいて、何となく Liberica JDK 11 の JavaFX 11 で [Getting Started with JavaFX](https://openjfx.io/openjfx-docs/) をやってみたのでメモっとく。

ほとんどの OpenJDK ディストリビューションには JavaFX (OpenJFX) は含まれていない。なので、Getting Started with JavaFX の手順を素直にやるとちょっと手間がかかる。でも、Liberica JDK 11 を SDKMAN! などでインストールすれば簡単に JavaFX 11 で遊べる。

# SDKMAN! で Liberica JDK 11 をインストールする

[SDKMAN!](https://sdkman.io/) で Liberica JDK 11 をインストールする。JavaFX が含まれないバージョンもあるので注意する。インストールできる Java バージョンの一覧は `sdk list java` コマンドで確認できる。

元記事を表示

Eclipseのショートカットキー(Windows,Mac)

自宅ではmac、現場ではwindowsを使用しています!
エンジニア経験がまだ浅い為、開発効率を上げるという事で辞書がわりにここにショートカットを記しておこうと思いました!

絶対覚えておいたほうが良い!
———————-

| | windows | mac |
|:——————|————:|———:|
|インデント|Ctrl+shift+F|command+⇧+F|
|コメントアウト(解除)|Ctrl+/または
Ctrl+Shift+C|command+/または
command+⇧+C|
|宣言を開く|F3|F3|
|javadockコメント|Alt+Shift+J|option+command+J|
|ステップイン|F5|F5|
|ステップオーバー|F6|F6|
|ステップリターン|F7|F7|
|再開|F8|F8|

**補足**

javadockコメント

Pleiades Eclipse 2020-03 リリース 〜 Java 14 新機能を試そう!

Pleiades All in One Eclipse 2020-03 をリリースしました。現在の Java 11 LTS から 2021 年の Java 17 LTS の移行に向けて、新機能を試しておきましょう。Pleiades All in One の Java Full Edition は解凍するだけで、Java のインストールや環境変数の設定が不要で Eclipse の各種設定も自動で行われるため、すぐに日本語化された Eclipse で Java 14 を利用できます。

**Pleiades All in One ダウンロード**
http://mergedoc.osdn.jp/
![splash.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/45147/1ac4c1cc-3e6f-adc6-a867-79a233dfca48.png)

# Java 14 プロジェクトの作成

デフォルトで設定済みの Java 6, 7, 8, 11, 14 から 14 を選択するだけです。
Java の

JavaでAzure Blob Storageを操作する(SASトークン、ファイル操作)

# この記事について

この記事では、[Azure Blob Storage](https://azure.microsoft.com/ja-jp/services/storage/blobs/)をJavaライブラリを使用して操作する際に必要なことを調べたのでメモしていきます。

使用しているライブラリなどは以下のバージョンです。

* Java version: OpenJDK Client VM AdoptOpenJDK (build 11.0.6+10, mixed mode)
* [Azure Storage Blob](https://mvnrepository.com/artifact/com.azure/azure-storage-blob): 12.5.0

## 準備するもの

### Azureのアカウント

当然のごとく必須です。

### Azure Storage Account

Azure Portalから、ダッシュボード > ストレージアカウント > ストレージ アカウントの作成 を選択し、
ストレージアカウント名などを入力し、アカウントの種類で「Blo

EclipseでJUnit5がjava.lang.NoClassDefFoundError: org/junit/platform/engine/EngineDiscoveryListenerになる

eclipseでJUnit5を実行しようとしたら、以下のようなエラーが発生する場合がある。

“`java
java.lang.NoClassDefFoundError: org/junit/platform/engine/EngineDiscoveryListener
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:801)
at java.base/jdk.internal.loader.BuiltinClassLo

Java sample code 04

##[SAMPLE GALLERY](http://blueplace.sakura.ne.jp/index.html)に掲載されたソースを疎通してimport文も付けました。
#4.java poi Excel
– Excelファイルを作成
– シート名の設定
– シートの色を指定
– セルに値を入力
– 文字の大きさを指定
– フォントを指定
– 文字を太字にする
– 文字をイタリックにする
– 文字に下線を引く
– 文字に取消線を引く
– セルの背景色を指定
– 値の整列(水平方向)
– 値の整列(垂直方向)
– セルの文字の色を指定
– セルの枠線を指定
– セルの枠線の色を指定
– セルの折り返しを指定
– セルにハイパーリンクを設定
– セルの結合

##4.java poi Excel
####4-1.Excelファイルを作成

“`java
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.FileOutputStream;
import java.io.IOException;
im

Java sample code 03

##[SAMPLE GALLERY](http://blueplace.sakura.ne.jp/index.html)に掲載されたソースを疎通してimport文も付けました。
#3.java poi Word
##poiのjarファイルをダウンロード必要
– install(https://poi.apache.org/)
– Wordファイルの作成
– Wordファイルに文字を書く
– 文字を太字にする
– 文字をイタリックにする
– 文字に下線を引く
– 文字の色を設定
– タブを付ける
– 取消線を付ける
– 二重取消線を付ける
– フォントサイズを指定する
– フォントを指定する
– 改行を入れる

##3.java poi Word
####3-0.download&install
下記のサイトからダウンロードしたbinファイルから、「*.jar」ファイルをProjectにコピーする
https://poi.apache.org/
https://xmlbeans.apache.org/download/
– サブコンポーネント
– POIFS (Poor

Iteratorパターン実装してみた

どーも、ふぎとです。

今回は結城浩『Java言語で学ぶデザインパターン入門』
(SB Creative)を参考にしながら、デザインパターン
のひとつである「Iteratorパターン」を実装していき
ます。

##Iteratorパターンとは

>Iteratorパターンとは、何かがたくさん集まっている
ときに、それを順番に指示していき、全体をスキャン
していく処理を行うためのものです。(P.2)

例えていえば、「袋に入ったモノの正体をひとつずつ
調べる」というプログラム、という感じかな。

本書ではサンプルプログラムとして、「本棚の中に入
れた本を調べ、その本の名前を順番に表示する」もの
が紹介されています。今回はそこにアレンジを加えて
「**ソングリストに入った曲をひとつずつ表示させる**」
プログラムをIteratorパターンで書いていこうと思いま
す。

##Aggregate(集合体)インターフェース
>Aggregateインターフェースは、数え上げを
行うものの「集合体」を表します。(P.3)

ここでは「曲の集合体」を表す「SongAggregate」
というインタ

JavaでBasic認証作ってみた

# 参考サイト様
let’s プログラミング
https://www.javadrive.jp/servlet/auth/

# 環境
eclipse2019-9
tomcat9

# 書いた動機
学んだことを忘れないためのメモ書きです。
ほぼ上記参考サイト様の通りで動きましたが、自分の環境に合わせてちょこちょこ変更したので、変更部分を書いておきます。

# Basic認証とは
簡易的な認証方法。
Webサイトを開くとポップアップが表示され、ログインIDとパスワードを要求されます。
IDもパスワードも暗号化されずに送信されるため、セキュリティ的にはだいぶ弱いらしい。
一度ログインするとブラウザを閉じるまでログイン状態が保持されます。

# 用意するファイル
+ servlet
+ web.xml
+ auth.xml
+ tomcat-users.xml

## servletの作成
まずはservletを作っていきます。

“`Java:AuthTest1.java
package auth;
import java.io.IOException;
import java.io.P

Oracle認定Java_silver対策メモ1

##はじめに
エンジニアとして働き始めはやくも5ヶ月目、そろそろ資格をとろうかと。。。ということで!「Oracle認定JavaSE Silver」の対策として、黒本をもとに各章ごとの重要そうなポイントをピックアップしまとめてみました。

##1章 簡単なJavaプログラムの作成

* エントリーポイント:プリグラムを実行する上で実行を開始する場所(mainメソッドがある場所の認識でOK)

* Javaコマンドの呼び出し方法は

“`
java クラス名 コマンド引数1 コマンド引数2…
“`
* Java11からコンパイルせずにJavaの実行が可能になった

“`
java ファイル名.java
“`
* Javaコマンド実行次の注意点
* 起動パラメータの区切りは半角スペースで判断される。
* エスケープ「¥」を用いることで「”」が文字として扱われる。

“`sample
java sample x “y y”z ¥” c¥”   // x , y yz , “ , c” 
“`

##2章 Javaの基本データ型と文字列操作
* 整数リテラルの表記