Java

Jython 使ってJavaからPython (1)

なぜか Jython の情報が少ない。Python ってそんなに他言語と一線を画すような拘りがあるのだろうか? Python は Pythonの良い所を利用して、Java はJavaの長所を活かして相互補助して使おうと考えないのだろうか?Java → Python 実行で、パラメータ渡し、結…

JavaからPythonをcall 試したら、、

Java から Python を call するのに、Process 作ってシェル実行でなく、Jython を使うこと検討する。 シェル実行だと結果が欲しい時に実行結果の標準出力や標準エラー出力ハンドリングをしなきゃならないからだ。 Maven で、以下より jython-standalone JAR …

SlackAPI 問い合わせを Java HTTPS通信して実行する

証明書認証をスキップするような空証明書での HTTPS 通信を Java で書いて、 サンプルを試す先=相手側は、なかなか見つからないものです。 Slack API というのが、HTTPS でした。これなら比較的自由に試せます。。 まずは、常套手段である誰もが以下のよう…

Java8 system epoc time → LocalDateTime

今更だけど、長くてわすれるので、メモです long milliseconds = System.currentTimeMillis(); LocalDateTime time = Instant.ofEpochMilli(milliseconds).atZone(ZoneId.systemDefault()).toLocalDateTime();long seconds; LocalDateTime time = Instant.of…

GenericBuilder の強化

Java データエンティティなど、データを表現するインスタンス生成する時に威力を発揮する ものを作っていた。。これを強化しようと思う。 (自分はエンティティという単語、DBに限定してしまうような表現が嫌い) https://github.com/yipuran/yipuran-core…

ElasticSearch JavaAPI は log4j2 使用だった。。

ElasticSearch JavaAPI を使用としたら実行時、Log4J の後継、log4j2 が使われていて ERROR StatusLogger No log4j2 configuration file found.log4j2.xml として最低限以下を記述して用意すればで、とりあえずこのメッセージは治まりをみせるが <Configuration> </Configuration> logback+…

JSON のキーを指定して対象の値を取得

JSON → 任意のクラスオブジェクトに変換させることなく、 JSON のキーを指定して対象の値、valueを取得するものを汎用的なメソッドを用意しようと考えると 先日紹介した oboe2uran.hatenablog.com を超える機能のメソッドを作るのは難しい。 紹介した GitHub…

2つのJSONの差をラムダで処理する

Google gson の JsonParserを使用して 2つのJSONの差をラムダで処理するもの。 import java.io.Reader; import java.io.StringReader; import java.util.HashMap; import java.util.Map; import java.util.function.BiConsumer; import com.google.gson.Jso…

得体の知れない不明なJSON を GSON で解析する

キー名、値の型、ツリー構造が不明(定義を知らされてない)JSON を Google GSON でとりあえず認識させる。 このような要件定義はあり得ないけど、とにかく読み込ませてできる解析をする。 gson の JsonParser から取得する JsonElement を recursively なロ…

GSON の JsonArray を Stream で処理する

JsonArray は、Iterable実装だから、spliterator() より、StreamSupport で Stream 処理できる。json を読み込ませて JsonElement je = new JsonParser().parse(reader);if (je.isJsonArray()){ JsonArray jary = je.getAsJsonArray(); StreamSupport.stream…

メモ: Mapのソートを簡単に書く

Memo Map<String, Object> map;map.entrySet().stream().sorted(Map.Entry.comparingByKey()).forEach(e->{ // TODO e.getKey() e.getValue() }); List<Map.Entry<String, Object>> list = map.entrySet().stream() .sorted(Map.Entry.comparingByValue()).collect(Collectors.toList());</map.entry<string,></string,>

いまいちだった Json-Path を再興

昔、JSON が世の中に浸透し始めたころ、かつてXMLを読み込むの XPATH なる読出し 方法があった。JSON を読み込むために XPATH のようなPath記述ルールで読むものが登場し Google Code Archive に入ってた。 結構、便利な筈で git-hub で公開されており Ma…

Chart.js で折れ線グラフの交点(intersect)をToolTip 表示(double値編)

標準でありそうで存在しない。だから線を描画する2本の線、プロットする2点(X,Y座標値)を 2本線が交差するしないを Chart.js で描画するプロットリスト ~2つのリストの特殊な順列組合せで交点を見つけて描画する。対象グラフは前回投稿のようなグ…

順序と組を考慮した配列リスト処理まわり。

以前、リストの順序に従った「ペア」を順序。。。ということで リストから順序を維持した Pair を作成する - Oboe吹きプログラマの黙示録 を書いた でも java.util.AbstractMap.SimpleEntry の方が一般的で、そして、2つのペアリストを 各ペアの比較をする…

Java10 の Reader に transferTo がある!

Java 9 で、InputStream に、public long transferTo​(OutputStream out) という なんとも横着なメソッドが追加されたが、 Java10 では、Reader にもこれに相当の public long transferTo​(Writer out) が追加された。。 try(FileInputStream in = new FileI…

ファイル最終更新時刻 → LocalDateTime

メモ。 java.nio.file.attribute.FileTime は、そのままでは現実的に使えないのでシステムデフォルトの時刻ゾーンで LocalDateTime にする。 FileTime filetime = Files.getLastModifiedTime(Paths.get("test.csv")); LocalDateTime time = LocalDateTime.of…

URLエンコードの取り扱いメモ

昔は、 Apache commons の codec とか使うのを見かけたけど、そんなことせずにURLエンコードは、、、Java の URLEncoder では、、、 「*」→ %2a 「-」→ %2d 「_」→ %5f の3つの記号が変換されず、半角スペースは「+」になる。 String str ="*-_a b c"; Stri…

Google gson Map null To empty String の入れ子

先日書いた MapSerializer oboe2uran.hatenablog.com入れ子でも、key : "" を適用させるには、、、registerTypeAdapter での登録に入れ子のパターンを書けばよい。 import com.google.common.reflect.TypeToken; import com.google.gson.Gson; import com.go…

CSV書込み、CLOSEは呼び出し側で。。

かなり前に書いたCSV書込み、渡している OutputStream はやはり呼び出し側で行った方が良い。 前に書いたもの、、つい try リソースハンドラの close で書いてしまった。 CSV書込み(2) - Oboe吹きプログラマの黙示録書き直すと、、 import java.io.…

Google gson Map null To empty String

Google gson で、toJson をする時、null → "" になるように、 NullStringToEmptyAdapterFactory なるものを書いていた。 もしくは、どこかのライブラリには似たようなものがあってそれを使ったりしていたが、 でもこれでは、Map に対しては効かない、Map にK…

LocalDateTime <--> Epoc mili second

メモ、 long milliseconds = System.currentTimeMillis(); LocalDateTime time = Instant.ofEpochMilli(milliseconds).atZone(ZoneId.systemDefault()).toLocalDateTime();LocalDateTime localdatetime = LocalDateTime.of(2018, 02, 28, 22, 32, 17); long …

Base64 でエンコードされた画像データ文字列から、画像の復元

Qiita で以下、古い記事を見つけました。 Base64形式で受け取った画像データをBufferedImageに変換 - Qiitaとても参考になり良い記事です。特に、1ピクセルずつ画像を生成する処理は Cool ! です。 Java8 になってからは、Apache Commons Codec の Base64 で…

Maven 依存関係深い時の Jigsaw モジュール参照できないエラーを回避するには

Java9 で、module-info を書いて、Maven で解決できない時、 Maven 依存関係が深くなってしまった場合、pom.xml でネストして書いていなかったものを 書けばコンパイルが通る。 実際の現象、、、 最初、pom.xml を以下のように記述していた。。 <properties> <wicket.version>8.0.0-M8</wicket.version> <guice.verison>4.</guice.verison></properties>…

Jasperreports NumberFormat は、cannot be resolved to a type

Jasperreports で、java.text.format.NumberFormat で、金額 format 出力しようと <textFieldExpression> </textFieldExpression> と書いたら、JRException 発生 java.text.format.NumberFormat cannot be resolved to a type になってしまう。DecimalFormatを…

Jasperreports でLocalDate をフォーマット出力

1年近く前、Jasperreports 5.6.0 で、Java8 LocalDate を出力するのに、Eclipseのコンパイラを使う方法を書いたが、 Jasperreports 5.6.0 で Java8 LocalDate を出力するには - Oboe吹きプログラマの黙示録 もう、Jasperreports 6.5.1 では、Jaspersoft Stu…

祝日休日、土曜日曜を除く平日のリストあるいは Stream を求める

自分が開発した Java祝日計算、 Java祝日計算 プロジェクト日本語トップページ - OSDN より、任意の月の祝日休日、土曜日曜を除く平日の Stream を求める。準備として、この Java祝日計算 では、以下のように祝日休日のリストを求めるのには、以下が存在する…

Java AES 256 暗合・複合

過去に何度も書いた Java AES 暗合・複合 秘密鍵、初期ベクトルをどう作成するか、いろんな方法あるが、 改めて、256bit で、SHA-256 ハッシュ値を使う方法。暗合 public static String encrypt(String passwd, String message){ try{ byte[] key = passwd.g…

祝日計算にstatic listHolidayBundle (year, month)メソッドを追加した。

祝日計算、「Java祝日計算」と命名して Java版だけのつもりだったが、途中から JavaScript版も追加 Java祝日計算 プロジェクト日本語トップページ - OSDN このJava版の方に、日付の LocalDate オブジェクトと祝日名 String を束ねた HolidayBundle のリスト…

Java9 Eclipse 必要な .class ファイルから間接的に参照されています のエラー

Java9 、Eclipse Oxygen Maven使用で、Wicket8 を使ったプロジェクトでコンパイルエラー以下が出る。 型 org.slf4j.Logger を解決できません。必要な .class ファイルから間接的に参照されていますwicket-core 8.0.0-M8 は、まだ sl4j-api 1.7.25 という ま…

Java祝日計算、3.1 に更新

2019年だけは天皇誕生日無しにするとして、Java のソースの方は 3.1 にした。 ja.osdn.net