Java

neovim+vim-codefmtでJavaフォーマッターを導入する

neovim+vim-codefmtでJavaのフォーマッターを導入しましたが、 なかなかてこづったのでメモを残しておきます。 github.com 1. vim-codefmtのインストール ~/.config/nvim/init.vim に以下の設定を追記して vim-codefmt をインストールします。 プラグインマ…

CPU使用時間の多いスレッドを特定する

仕事であるアプリケーションのCPU使用率が異常に高くなる事象のトラシューをしたんですが、久々にこの手のトラシューをしていろいろ忘れてたこともあり、新たな学びもあったりしたので、備忘録として残しておく。 とりあえずこの手の事象に遭遇した際はスレ…

リフレクションで取得した例外クラスをスローする方法

リフレクションで例外クラスの取得してスローする方法のサンプルコードです。 今回生成するクラスでキャストはしたくなかったので、 キャストせずに書く方法を考えたわけですが、ぱっと書き方がわからず。 結局調べて解決したんですが、ほしい情報になかなか…

「Java」ジェネリックなインタフェースを実装した抽象クラスの作成方法

ジェネリクスを利用したインタフェースを実装する抽象クラスの作成についてつまずいたのでメモ。 下記の感じのジェネリックなインタフェースがあったとします。 package com.example; public interface SampleInterface<E> { public E test(E e); } 上記を実装</e>…

「Java」JacksonでJavaオブジェクトのJSON表現を得るコード

Jackson を利用して Javaオブジェクトの JSON 表現を出力するサンプルコードを書いたのでメモとして残しておきます。 ObjectToJson.java package com.example.jackson; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.ja…

「Java」ラムダ式のサンプル(備忘録)

久しぶりの更新。 避けに避け続けたラムダ式。とうとうお仕事で読む、書く必要に迫られたのでお勉強。 といっても今回は備忘録的にサンプルコードを。ラムダだ式はざっくり言うと「メソッド一つしかないインタフェースの実装をより簡単に書けるようにしまし…

「JNA」イベントログのログファイルのパスを取得する

JNAを利用してイベントログのログファイル(.evtx)のパスを取得するサンプルを書いたのでメモ。※「ログファイルのパス」は、イベントビューアの[ログのプロパティ] - [ログのパス] のこと。 public class Test { ..... private static final Wevtapi wevtapi …

EclipseLink のキャッシュの中身を表示するサンプル

EclipseLink で L2 レベルのキャッシュ(Persistence Unit Cache という言うみたいです。persistence unit 単位のキャッシュですね)の中身を表示するサンプルです。EclipseLink では JpaCache というインタフェースが用意されていて、こいつがキャッシュの…

「Java」ProcessBuilderの環境変数について

ProcessBuilder の環境変数についてのメモです。・ProcessBuilder (Java Platform SE 8) https://docs.oracle.com/javase/jp/8/docs/api/java/lang/ProcessBuilder.htmlProcessBuilder が利用する環境変数については、ドキュメントに このプロセス・ビルダー…

「Java」MXBeanのサンプル

MXBeanのサンプルを書いてみたのでメモを残しておきます。 参考にしたのは以下のオラクルのページ(というかページに記載のサンプルほぼそのままです・・・)・MXBeans https://docs.oracle.com/javase/tutorial/jmx/mbeans/mxbeans.html まず、MXBean のイ…

「JNA」 Event Logging API を使ってイベントログを出力する

Event Logging API を使ってイベントログを出力するサンプルを書いてみたのでメモを残しておきます。・Event Logging API https://msdn.microsoft.com/ja-jp/library/windows/desktop/aa363652.aspx 以下サンプルです。・WindowsEventReporter.java package …

「Java」ProcessBuilderで環境変数を設定してバッチファイルを実行する

ProcessBuilder で環境変数を設定してバッチファイルを実行するサンプルのメモです。といいましても、ProcessBuilder#environment で取得したマップに対して、設定したい環境変数を put してやるだけでいいみたいです。ProcessBuilder (Java Platform SE 8 )…

JCIFSを使ってみる(ファイルの読み込み)

JCIFS なる Java の SMB クライアントの実装があるということを知ったので、ちょっと使ってみました。JCIFS今回は読み込みのサンプルを。■ JCIFSTest.java package com.example.jcifs; import java.io.ByteArrayOutputStream; import java.io.IOException; i…

「JNA」intとDWORDのマッピングについて

JNA で Windows API を呼び出す際の int と DWORD のマッピングについてメモしておきます。 DWORD については以下のドキュメントに記載の通り、32bit の符号なし int (0 ~ 4294967295) になります。Windows Data Types (Windows) A 32-bit unsigned integer…

JNAからWindows Event Log APIを呼び出してイベントログを取得してみる(EvtFormatMessage関数を利用)

以下のエントリーでは EvtRender関数を利用してイベントログのレンダリングを行っていましたが、EvtFormatMessage関数というのもあるみたいなので、こちらの関数を使うサンプルを書いてみました。a4dosanddos.hatenablog.com以下のドキュメントのコードを参…

JNAからWindows Event Log APIを呼び出してイベントログを取得してみる(ブックマーク利用その2)

以下のエントリーでブックマークを利用したサンプルを書いてみましたが、このサンプルだとブックマークが存在しない、かつ、EvtQuery関数に渡すクエリにマッチするイベントログが存在しなかった場合にブックマークが作成されません(「//ブックマーク保存処…

JNAからWindows Event Log APIを呼び出してイベントログを取得してみる(ブックマーク利用)

Windows Event Log API にはブックマークなる機能があるらしいので、これを JNA 経由で使ってみました。Bookmarking Events (Windows)長ったらしいですが、以下のような感じになりました。 ブックマークは XML としてファイルに保存するのですが、初回処理な…

JNAからWindows Event Log APIを呼び出してイベントログを取得してみる

JNA から以下の Windows Event Log API を呼び出してイベントログを取得するサンプルを書いてみたのでメモしておきます。Windows Event Log (Windows)とりあえず以下の感じになるみたいです。 EvtQuery関数に渡すクエリで(第三引数)取得する条件を指定しま…

JNAでWindowsのAPIを呼び出してみる

JNAを使ってWindowsのAPIを呼び出すサンプルを書いてみました。GitHub - java-native-access/jna: Java Native Accessひとまず簡単なサンプルというところで、以下のAPIを呼び出す感じにしています。GetLastError 関数 SetLastError 関数 FormatMessage 関数…

JAX-WS でさくっと作る Web サービス

JAX-WS でさくっと Web サービスを作ってみました。さくっと取り出せるように自分用にメモを残しておきます。「サーバ側」サーバ側からいきます。まずは、Webサービスの用のクラスを作成する。 ・Test.java package com.example.jaxws; import javax.jws.*; …

「Java」ロック獲得待ちを表すスレッドダンプ

スレッドロック獲得待ちとなっている状態のスレッドダンプを取得してみます。サンプルは簡単に以下のようなものを用意しました。 package test.threaddump; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public cl…

「Java」任意の文字のみにマッチする正規表現

Java の Pattern API を使って任意の文字のみにマッチする正規表現を使ったサンプルです。■ AnyCharMatch.java package test.regex; import java.util.regex.Matcher; import java.util.regex.Pattern; public class AnyCharMatch { private static final Pa…

「Java」大文字小文字を区別しない正規表現

Java の Pattern で大文字小文字を区別せずに正規表現にマッチさせるサンプルです。当然ながら、以下のようなコードだと data1 の "Example" だけマッチして、data2、data3 はマッチしません。■ 大文字小文字が区別されるので "Example" しかマッチしない pa…

HTMLEditorKit.ParserCallback を使ったサンプル

HTMLEditorKit.ParserCallback を使って HTML をパースするサンプルを書いてみました。・HTMLEditorKit.ParserCallback (Java Platform SE 8 ) https://docs.oracle.com/javase/jp/8/docs/api/javax/swing/text/html/HTMLEditorKit.ParserCallback.html 以下…

ExecutorService#submit を使ったサンプル

ExecutorService#submit を使ったサンプルのメモです。Executor#execute でもタスクの実行はできますが、ExecutorService#submit を使うとタスクの結果 ( Future ) が得られるという感じですかね。実際のサンプルの以下の感じです。■ ExecutorExample.java p…

EclipseLink 使ってみる

ちょっとお仕事の関係で EclipseLink を調べる必要が出てきたので、ひとまず簡単なサンプルを書いてみました。その時のメモです。EclipseLink は JPA、MOXy、DBWS と3つのコンポーネントがあるみたいですが、今回は JPA に関する内容です。・EclipseLink ht…

「Quartz」ジョブスケジューリングライブラリ Quartz を使ってみる

Java のジョブスケジューリングライブラリに Quartz というのがあるみたいです。少し使ってみたのでメモを残しておきます。・Quartz Scheduler | https://quartz-scheduler.org/ * ダウンロード 以下からダウンロードできます。・Quartz Scheduler | Downlo…

「Java」Object#close でオブジェクトのクローンを作成するサンプル

Object#close を使用することでオブジェクトのクローンが生成できます。・Object (Java Platform SE 8 ) https://docs.oracle.com/javase/jp/8/docs/api/java/lang/Object.htmlドキュメントに書いてますが Object#close を使用する場合、クローンを生成する…

「Spring」 MBeanExporter を使って MBean を登録する

Spring の MBeanExporter を使うと JMX API でごにょごにょすることなく Bean 定義ファイルだけで MBean の登録ができるみたいです。・MBeanExporter (Spring Framework 4.2.4.RELEASE API) http://docs.spring.io/spring/docs/current/javadoc-api/org/spri…

「Java」Runtime#addShutdownHook を使ったサンプル

Runtime#addShutdownHook で登録したシャットダウンフックは System#exit あるいは Ctrl+C なりのユーザ割り込みが発生した場合に呼ばれるとのことです。・Runtime (Java Platform SE 7 )https://docs.oracle.com/javase/jp/7/api/java/lang/Runtime.html#ad…