Java / 応用

【Java】Java で Windows の メッセージ通知を行うには...

■ サンプル * 画像「icon.png」は resources内に配置しておく Main.java import java.awt.AWTException; import java.awt.Image; import java.awt.MenuItem; import java.awt.PopupMenu; import java.awt.SystemTray; import java.awt.Toolkit; import java.…

【Java】二値画像の細線化

■ サンプル https://blogs.yahoo.co.jp/dk521123/37815897.html で、細線化を勉強した時に、以下のサイトでJavaのプログラムがあった。 https://codezine.jp/article/detail/98 実行しようとしたら、Appletだったので、もっと簡単に実行できるように、Swing…

【Java】Javaで 標高データ SRTM-3 を扱う ~ ビッグエンディアンをリトルエンディアンに変換する ~

■ はじめに * Javaで標高データを扱う * 今回扱うデータは、「SRTM」で、ビッグエンディアンの2バイト整数として格納されている ビッグエンディアン については、以下の関連記事を参照のこと https://blogs.yahoo.co.jp/dk521123/37795867.html 標高データ …

【Java】Pluggable Annotation Processing API

■ はじめに https://blogs.yahoo.co.jp/dk521123/37773041.html で、「Pluggable Annotation Processing API」を使っているとのことだったので、調べてみた。 ■ Pluggable Annotation Processing API * コンパイル時にアノテーションを読み込んでくれる機能 …

【Java】Java の最近動向

■ はじめに * Oracle JDKが、Java11から有償(有償サポート?)になるとのことなので、今後の動向も含めてメモ。 => Oracle JDK = OpenJDK になるらしい ■ Javaバージョン * LTS : 長期サポート(Long Term Support) Java8 (LTS) * 2014/03/18リリース * 20…

【Java】ガベージコレクション ( Barbage Collection; GC )

■ ガベージコレクション Barbage Collection(GC) * 不要になったメモリ領域を自動的に解放する機能 ■ GCの種類 [1] マイナーGC / Scavenge GC(スキャベンジ・ジーシー) [2] メジャーGC / Full GC Java のメモリ構造については、以下の関連記事を参照のこと…

【Java】Java からCPU情報を取得する方法を考える

■ はじめに https://blogs.yahoo.co.jp/dk521123/7968881.html の続き。 実装案 【1】コマンドを実行した方法 【2】com.sun.management.OperatingSystemMXBean を使った方法 【3】MBeanServer を使った方法 【1】コマンドの実行結果から取得する方法 Linuxの…

【Java】CRL (証明書失効リスト) と OCSP

■ 用語整理 * 各用語は、以下の関連記事を参照のこと。 https://blogs.yahoo.co.jp/dk521123/33100623.html ■ 証明書失効リストのチェックを有効にする 構文 // クライアントで証明書失効リスト(CRL)のチェックを有効化する System.setProperty("com.sun.n…

【Java】SSLのトラストストア / キーストアのパスを変更するには...

■ SSLのトラストストアのパスを変更するには.. * デフォルトの(指定しない)場合は 【JAVA_HOME】/lib/security/cacerts 例 // トラストストアファイルへのパス System.setProperty("javax.net.ssl.trustStore", "keys/clientTruststore.jks"); // トラスト…

【Java】Java で レスポンスヘッダーの日時を取得するには...

■ サンプル import java.io.IOException; import java.net.HttpURLConnection; import java.net.URL; import java.text.DateFormat; import java.text.SimpleDateFormat; import com.ibm.icu.util.Calendar; public class Main { public static void main(St…

【Java】プロキシ設定のチェック機能を考える ~ その1 ~

■ はじめに プロキシ設定のチェックを以下の関連記事であるようなコードで試してみた。 Java で ping を考える https://blogs.yahoo.co.jp/dk521123/37019179.html しかし、以下の「問題点」が出た。 問題点 Basic認証が設定してあるプロキシサーバで Basic…

【Java】プロキシ設定のチェック機能を考える ~ その2 ~

■ はじめに https://blogs.yahoo.co.jp/dk521123/37185366.html の続き。別のアプローチを試している。 ■ 問題点に対するアプローチ サーバに細工をし、「HTTPコード 407(プロキシ認証が必要)」を返せば ログアウト的なことをできるらしいができればJavaアプ…

【Java】Java から別のJava(JARファイル)を実行するには...

■ 『Java から別のJARファイルを実行する』を実現するために... Java から別のJARファイルを実行するには... ProcessBuilder processBuilder = new ProcessBuilder("java", "-jar", "[JARファイル名].jar"); // コマンドライン引数を使う場合... // ProcessB…

【Java】ラムダ式 ~ 応用編 / サンプル集・その2 / 過去直近データを取得する ~

■ はじめに * SQLとかでよくやる過去直近をJava8から導入されたラムダ式で書いてみる。 ■ 方法 他にもっといい方法がありそうだが... * filter と max/min で実装する。 list.stream().filter(x -> x.【日付】.compareTo(【基準日】) <= 0) .max((x1, x2) ->…

【Java】パーセントエンコーディングをJavaで自作する

■ はじめに https://blogs.yahoo.co.jp/dk521123/37109157.html で、標準のjava.net.URLEncoder.encode() を試したが、以下のAPI https://docs.oracle.com/javase/jp/8/docs/api/java/net/URLEncoder.html -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=…

【Java】URLエンコーディング

URLエンコーディングをJavaで実装するには... 【1】 標準の URLEncoder.encode() を使用する 【2】 Apache Commons CodecのURLCodec を使用する 注意 要件次第でどちらも条件を満たさない可能性がある 詳細は以下の関連記事を参照のこと。 https://blogs.y…

【Java】Java で HTTP通信を行うには...

サンプル import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.HttpURLConnection; import java.net.URL; import java.nio…

【Java】ラムダ式 ~ 応用編 / サンプル集・その1 ~

■ はじめに https://blogs.yahoo.co.jp/dk521123/34188394.html https://blogs.yahoo.co.jp/dk521123/34192426.html で行ったことを使って、よく使うであろうサンプル集を扱う ■ IDの昇順/降順に並び替える sort() を使う # 昇順(小さい順) list.sort((x1,…

【Java】Java間でのデータの受け渡し ~ RMI (Remote Method Invocation) ~

サンプル サーバとクライアント間のインターフェース import java.rmi.Remote; import java.rmi.RemoteException; public interface IHelloWorld extends Remote { String sayHello(String name) throws RemoteException; } サーバとクライアント間の実クラ…

【Java】Java で ping を考える

サンプル import java.io.IOException; import java.net.HttpURLConnection; import java.net.URL; public class Main { public static void main(String[] args) { System.out.println("Result : " + ping("https://blogs.yahoo.co.jp/dk521123/34842155.ht…

【Java】プロセス情報(PIDなど) に関するあれこれ

■ はじめに * Javaでの PID(プロセスID)などのプロセス情報に関する処理をまとめる。 ■ 自分のPIDを取得するには サンプル import java.lang.management.ManagementFactory; import java.lang.management.RuntimeMXBean; public class Main { public static …

【Java】【Linux】JavaからLinuxのシステム日付を変更するには...

■ 前準備 Linuxのシステム日付を変更する一つの方法として、dateコマンドを実行する必要があるが、 その場合、ルート権限が必要になる。 Java内でdateコマンドを実行しても、以下「エラー時の出力結果」のように表示されてしまい 日付変更できない。そのため…

【Java】 漢数字をアラビア数字(int型)に変換する

はじめに * 漢数字をアラビア数字に変換する必要があり、ネットを漁ってたらよさげなサンプルがあったのだが 一部バグがあったので修正してサンプルをアップする サンプル * 正の整数のみ(小数や負の数は未対応) Converter.java import java.security.Inva…

【Java】 表記ゆれを考える

はじめに 表記ゆれを補正するプログラムを考える。 => 結論から言うと、簡単にできる代物じゃない...(流石にこの分野だけで研究されているだけはある...) => 全てに対応するのは大変なので、カタカナ単語のみを考える => 基本的なもの以外は、後からカスタマ…

【Java】 全角ひらがな ⇔ 全角カタカナ を変換する

注意 http://tagnoheya.com/charlist/charlist2.html の一覧表からわかる通り、カタカナ「ヴヵヶ」は、 ひらがな文字コード上に対応しないため、変換はできない サンプル public class JapaneseHelper { private static final char SMALL_KATAKANA_A = 'ァ';…

【Java】 Sun / Oracle JDK と OpenJDK について

OpenJDK とは * OpenJDK は、Oracle社が提供しているJDK(Oracle JDK(Java Development Kit))をオープンソース化したもの。 => なので、完全フリー。GPL v2 * Oracleは、OpenJDKをOracle JDKのコード・ベースとして使用している => ってことは、どっちらも…

【Java】 シリアル番号やパスワードの読みを振り仮名に変換するプログラムを考える

はじめに http://blogs.yahoo.co.jp/dk521123/36538970.html で以下のような問題があるって書いた。 ~~~~~~~~~~~~ * 以下の文字が紛らわしく間違うトラブルがあるとかないとか... + 数字の「0(ゼロ)」と英字の「O(オー)」 + 数字の「1(イチ…

【Java】 Java で、シリアル番号生成を考える

はじめに * Java で、シリアル番号生成を考えていたら、以下のサイトを見つけたので参考にして実装してみる http://www.venishjoe.net/2009/08/basic-serial-key-generation-module-in.html 参考:シリアル番号に関わるトラブル http://www.barcode-net.com/…

【Java】 IPアドレスからホスト名を取得

■ IPアドレスからホスト名を取得 * InetAddress.getByName() / InetAddress.getLocalHost() を使用する ■ 注意 * InetAddress.getByName("localhost") / InetAddress.getByName("127.0.0.1") / InetAddress.getLocalHost() で動作が異なるので、注意!!(以下…

【Java】 外部プログラム/コマンド実行でタイムアウト設定するには...

はじめに http://blogs.yahoo.co.jp/dk521123/34842155.html で、 外部プログラム/コマンドを実行する事を行ったが、 もし、その処理が重く時間が掛かる場合、タイムアウトを設定して中断することも考えなくてはならない。 そこで、今回は、タイムアウト処理…