Java
■ はじめに 小ネタ。 https://dk521123.hatenablog.com/entry/2023/08/24/002539 でやった「sbt run による引数設定の仕方」を分冊。 目次 【1】SDKMAN 【2】インストール 1)Linux z)トラブルシュート 【3】各種インストール 1)Java 2)sbt 【4】…
【1】MySQLのJDBCドライバを上げたらエラー「The server time zone value」になる 現象詳細 MySQLのJDBCドライバを v5.1.46 から v8.0.11 にあげたとこと、 以下の「エラー内容」になる build.gradle 修正前 (現象発生なし) dependencies { // MySQL compil…
■ はじめに Javaアプリを作成する際に、 log4j 2の設定ファイル「log4j2.xml」(以下の関連記事を参照) https://blogs.yahoo.co.jp/dk521123/37495975.html や Velocity 等のテンプレートファイル XXXXX.vm (以下の関連記事を参照) https://blogs.yahoo.c…
【1】公式サイト https://github.com/powermock/powermock 【2】初期設定 * Gradleを使う build.gradle dependencies { // PowerMock testCompile group: 'org.powermock', name: 'powermock-module-junit4', version: '1.7.3' testCompile group: 'org.po…
【1】「SEVERE: A web application registered the JDBC driver...」が表示される * Tomcatのログを見たら、Tomcat終了時に以下の「エラー内容」が表示された エラー内容 SEVERE: A web application registered the JDBC driver [com.mysql.jdbc.Driver] bu…
■ 日付 / 時間 / 日時 Java8版 * java.time.LocalDateTime * java.time.LocalDate * java.time.LocalTime フォーマッタ * java.time.fomat.DateTimeFormatter ■ 日付 / 時間 / 日時あれこれ 加算/減算 * plusXxxx() の戻り値から取得する サンプル DateTimeF…
■ 環境変数 の取得 From Java1.5 * System.getenv(【環境変数キー】) : 環境変数値を取得 * System.getenv() : 環境変数をMapとしてすべて取得 ■ サンプル import java.util.Map; public class Main { public static void main(String[] args) { System.ou…
■ 関数型インタフェース * Java 1.8 から追加 * 抽象メソッドを1つ持っているインターフェイス * defaultやstaticは対象外 ■ FunctionalInterfaceアノテーション / @FunctionalInterface API仕様 https://docs.oracle.com/javase/jp/8/docs/api/java/lang/F…
■ メソッド参照 (method reference) * Java 1.8 から追加された機能 構文 コロン2つ「::」 【クラス名】::【メソッド名】 【インスタンス名】::【メソッド名】 ■ サンプル IHelloWorld.java @FunctionalInterface public interface IHelloWorld { String say…
■ Boolean.valueOf() / Boolean.getBoolean() * Boolean.getBoolean()ってあったので、 true / false に変換すると勘違いしてたのでメモ。 Boolean.valueOf(文字列) * 文字列を true / false に変換する Boolean.getBoolean(文字列) https://docs.oracle.com…
■ はじめに 以下の関連記事 https://blogs.yahoo.co.jp/dk521123/32156111.html https://blogs.yahoo.co.jp/dk521123/36602948.html にあるように、List や Map を初期化するのに、以下のように行っていた。 ~~~~~~~ List<Person> list = new ArrayList<Person>() { {</person></person>…
■ はじめに 以下の関連記事 https://blogs.yahoo.co.jp/dk521123/32156111.html https://blogs.yahoo.co.jp/dk521123/36602948.html にあるように、List や Map を初期化するのに、以下のように行っていた。 ~~~~~~~ List<Person> list = new ArrayList<Person>() { {</person></person>…
■ カスタムソート 独自のソートをする実装を考える * Comparableを実装する必要がある ■ サンプル Person.java * Comparableを実装 public class Person implements Comparable<Person> { private String companyId; private String employeeId; private String name</person>…
■ List <=> 配列に変換するには // List => 配列 List<SampleClass> list1 = new ArrayList<>(); SampleClass[] classes = list1.toArray(new SampleClass[list1.size()]); // 配列 => List SampleClass[] samples = new SampleClass[3]; List<SampleClass> list2 = Arrays.asList(samp</sampleclass></sampleclass>…
■ はじめに https://www.ipa.go.jp/security/ciadr/vul/20170118-jre.html https://www.ipa.go.jp/security/ciadr/vul/20170419-jre.html で、Javaの脆弱性があったので、 インストール / アンインストールをまとめておく 目次 【1】apt による設定 1)イ…
■ はじめに * 色々な方法があるみたいだが、絞る 目次 【1】プロキシサーバ経由で接続 1)プロキシサーバ経由で接続するためのプロパティ 【2】設定方法 その1:起動パラメータからの設定 その2:ソースコードからの設定 その3:環境変数「http_proxy…
■ はじめに https://dk521123.hatenablog.com/entry/2017/04/28/234103 で扱った Amazon SES において、以下のサイト http://temporal.hatenablog.com/entry/2013/01/20/174500 の対策として、「Return-Pathヘッダ付加」があったので、 JavaMailでどうすれば…
■ はじめに https://dk521123.hatenablog.com/entry/2017/04/28/234103 Amazon SES(Simple Email Service)を使用する場合、 Transport Layer Security(TLS)で送信する必要があるとのことなので、 JavaMailで実装する方法を記録する 【1】JavaMailの設定 *…
■ はじめに * 値が等しいことを比較するのに、 等値演算子「==」と「equals」メソッドがある。 ~~~~~~~~~~~~~~~~ [1] 【値1】 == 【値2】 [2] 【値1】.equals(【値2】) ~~~~~~~~~~~~~~~~ 別に基本だが、 「文字列だった…
■ はじめに * System.currentTimeMillis() と System.nanoTime() があるのは知ってて、 時間単位が、ミリ秒 と ナノ秒 の違いだけかと思ったが、 それだけでなく、出力の計測の仕方が異なっていたので、 今回は、この2メソッドを掘り下げてみる。 ■ System.c…
■ はじめに 今回は、JavaのreplaceFirst / replaceAllを使って 不要文字除去 / 対象文字のみ抽出を行う。 目次 【1】考え方 【2】サンプル 例1:カタカナ以外除外(カタカナのみ抽出) 例2:語尾の削除 【1】考え方 例:「数字以外除外(数字のみ抽出)…
■ はじめに SSL通信では、 以下「SSLシーケンス概要」の★部分にあるように乱数を作成してやり取りする。 今回は、Javaでの実装でこの乱数作成について考える # 本当は、以下のトラブルを解決する過程で、SecureRandom クラスを学ばなければならなかったので …
■ はじめに 今回は、JavaのMatcher.group()を使って 文字列の抽出を行う。 【1】基礎知識 * パターンの中で、マッチした部分を取り出したい部分を括弧()で囲う 1)構文 // 1, 2, ... String result1 = matcher.group(1); String result2 = matcher.group(2…
■ Mapの初期化 // Case2 : 匿名内部クラスを利用した方法(★以下「注意:匿名内部クラスを利用した方法について」を参照★) Map<String, String> maps = new HashMap<String, String>() { { put("X001", "first"); put("X002", "second"); put("X003", "third"); } }; http://pgnote.net/?p=3</string,></string,>…
■ はじめに JavaMail を使って SMTP-AUTH の方式「DIGEST-MD5」でメール送信する方法を考える ■ 用語 SASL(サスル) * SASL : Simple Authentication and Security Layer * 認証や暗号化などのセキュリティに関する処理を行う層 CRAM-MD5 * CRAM : Challeng…
■ はじめに https://dk521123.hatenablog.com/entry/2014/08/02/234119 などで、byte配列を16進数文字列 に変換する必要があり 以前は、以下のように独自にしていたが、簡単に実装できるのでメモ。 以前の実装: byte配列⇒16進数文字列 の変換 byte[] hashVa…
■ はじめに https://dk521123.hatenablog.com/entry/2016/07/16/222422 https://dk521123.hatenablog.com/entry/2016/07/17/023459 の続き。 今度は、SMTP認証に対応する。 【1】ポイント * Sessionを作る際に、違いがある 1)SMTP認証なし Properties pro…
■ はじめに * Javaの標準APIのみで同じサイズの画像を縦もしくは横に結合する ■ サンプル Main.java import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundEx…
■ はじめに 今回は、JavaのMatcher.find()を使って 数字/文字の出現回数を数えることを行う。 【1】サンプル 例1:パスワードの強度を測る * パスワードの強度を測るのに、数字/文字の出現回数を数えることがある それを正規表現を使って実現する NumericC…
■ はじめに 今回は、JavaのMatcher.find()を使って 数字/文字の出現回数を数えることを行う。 【1】サンプル 例1:パスワードの強度を測る * パスワードの強度を測るのに、数字/文字の出現回数を数えることがある それを正規表現を使って実現する NumericC…