Java

Pattern Matcher の find()実行と group()実行、1つの処理文にする。

java.util.regex.Pattern java.util.regex.Matcher マッチした部分の抽出は、今まで良い考えが浮かばず、以下のように、 Matcher 変数宣言を強いられてきた。 String str = "HTTP This request is Unauthorized (401)"; Matcher m = Pattern.compile("\\([0-…

Putty で作成したRSA鍵で暗合複合の実行(Java)

putty key generator (PuTTYgen) で SSH-2 RSA 鍵を作成、PuTTYgen 画面の [ Save private key ] ボタンで 作成する ppk ファイルを使用します。 SSH 通信やFSCP の為に、PuTTYgen で鍵を作って利用するのがほとんどで、業務開発などのプログラム開発の デー…

他言語と相互間の暗合複合を考慮の AES 暗合複合 Java のコード

Java と Pyrhon 間の AES 256 暗合複合ができるようにするものです。 他言語と相互間の暗合複合を考慮の AES 暗合複合 Python のコード - Oboe吹きプログラマの黙示録 の続きです。Java 側のコード import java.security.MessageDigest; import java.securit…

Base64 かどうか判定する

Apache commons の codec https://commons.apache.org/proper/commons-codec/ に存在する Base64 かどうかを判定する処理、 他の処理は commons の codec にあるものを使わなくてもいいから、 とにかく Base64 かどうかを判定する処理だけが欲しかった。 よ…

Java と Python 相互で AES 256 暗号/複合を実行する

試したのは、CBCモードとECBモードです。 Python暗号→Java複合は問題ないのですが、Base64 エンコードで相互受け渡すとして Java暗号→Python複合では、暗号化した文字列長さが4の倍数になっても、 暗号文を Base64 b64decode 実行した時に、 binascii.Error…

Java 16進数文字列から、byte[]

Java 16進数文字列から、2文字ずつ切り取って byte[] を作る。 必ず2文字ずつ切り出せる文字列であるとする。=すなわち長さが2で割り切れる。 String hexstring= "56d19eaf"; クラシックな方法 Matcher m = Pattern.compile("[\\w]{1,2}").matcher(hexst…

クラスと同じ場所に置くファイル読込み(for java11)

ただのメモです。 テンプレートなど Java クラスと同じ場所に配置したファイルを読込む想定です。java.io.Reader 取得 public Reader getFileRreader(Class cls, String filename) throws IOException, URISyntaxException{ return new FileReader( new File…

JSON書式判定

書式として与える JSON または任意の JSON に対してその要素のキーを必須で持つかどうかを判定する処理を 普遍的に欲しくなりました。フォーマッタ―とまでは望まないけど、それに近い処理も、できれば充分です。 だって JSONを Object から JSON作成は、Goog…

GSON で作成するJSONの整形

Google gson でオブジェクトから JSONテキストを生成したとき、 人間の目で見やすいように、整形するには、 GsonBuilder の setPrettyPrinting() を実行してから、Gsonを作成する。 Gson gson = new GsonBuilder().setPrettyPrinting() .create(); String st…

Java → Python プロセス起動の可能性

去年書いた yipuran-core/ScriptExecutor.java at master · yipuran/yipuran-core · GitHub このメソッド public static int runStream(Supplier<String>, Supplier<Collection<String>> , Consumer<InputStream>, BiConsumer<String, Throwable>) public static int runStream(Supplier<String>, Consumer<InputStream>, BiConsumer</inputstream></string></string,></inputstream></collection<string></string>

PythonでPDF作成→Javaで受け取り→Wicket AJAXダウンロード

WebアプリをJava で構築していて、Javaでダウンロードすファイルを作るなら一時ファイル (ディスクに一旦書き出すこと) を作らずにダウンロードするものを作るのは容易ですが、言語、実行環境が異なる処理に作らせて 一時ファイルを生成することなくダウン…

JEP325 いいなぁ。。。

ふと目にした。綺麗でいいなぁと。。JEP 325: Switch Expressions (Preview)Java11 に入らなかったんだ。。。来年の Java12 に入るのかな?

jsTree→JSON抽出→Java GSONで解析→PythonでPDF作成→Wicket でPDFダウンロード

Webページに表現したツリー図を、以前、HTML2CANVAS で変換して jsPDF でPDF作成をしたのですが、 oboe2uran.hatenablog.com 大きいツリー図になると1ページで入らない場合破綻します。 html2canvas のキャプチャ実行を複数ページに 分割するように何回…

改善する→「JavaからProcess起動で Python 実行して PDF を作らせる。」

環境依存になってしまうコーディングはやはり良くないということで、 oboe2uran.hatenablog.comこれをもう少し修正して、Eclipse環境の起動でも問題が起きないようにする。 Process起動で 渡すデータを、ユニコード文字列で渡して Python側でデコードして使…

JavaからProcess起動で Python 実行して PDF を作らせる。

Java プロセス起動実行として、既に作成した yipuran-core/ScriptExecutor.java at master · yipuran/yipuran-core · GitHub を使います。 用意する Python スクリプト make_pdf.py と、テンプレートになるPDF と 出力先を指定します。 印字するデータとして…

Java - Python 間のRSA暗号→複合

今回は OpenSSL で作成する RSA鍵です。 RSA鍵作成 PEM形式の秘密鍵を生成する → private_key.pem openssl genrsa -out private_key.pem 1024パスワード付きの秘密鍵にするなら、 openssl genrsa -aes256 2048 > private_key.pemで、入力求められるのでパス…

コレクションやマップから親子関係、親を辿るクラス Refrain

先日投稿したものから、勢いに任せて作りました。 yipuan-core にも載せました。 https://github.com/yipuran/yipuran-core/blob/master/src/main/java/org/yipuran/util/Refrain.javaきっかけは、親子関係、ノードツリーの関係のデータ群の処理をコーディン…

再帰メソッドとラムダ式

再帰呼出しをするように関数型インターフェースを書くまでもない、 単にメソッド宣言を省略するだけの目的で考える。 再帰と言っても、実際の仕事の機会では、フィボナッチ数列を求めるような機会よりも 処理が遅くてもいい探索目的の機会の方が多い。例題(…

LazyModalPanel

先日、Wicket で、処理中をModalWindow で表現するを書いたのですが、、 oboe2uran.hatenablog.com処理が終わった後に、正常終了か異常終了かのメッセージを表示したい というのを対応しようと書き直しました。 というのを処理完了時に出すようにします。Wic…

Apache POI 入力規則リストの注意

先日、以下を書いたが、この中の createExplicitListConstraint は注意が必要だ。 Apache POI 入力規則リストの生成 - Oboe吹きプログラマの黙示録入力規則をシート参照でなく任意のリストで指定する createExplicitListConstraint は、 どうやら、引数で指…

リストの逆順

今更、Javaのおさらいです。 List<String> list = Arrays.asList("A", "B", "C", "D", "E"); java.util.Collections の reverse をすれば簡単ですが元のリスト自体を逆順にしてしまいます。 そうじゃなくて、「リストの逆順の処理を短く記述したい」 逆順のリスト生</string>…

Apache POI 入力規則リストの生成

よく見かけるサンプルを基に書くと、以下のように固定リストを指定した書き方がある。 try(Workbook book = new XSSFWorkbook(); OutputStream out = new FileOutputStream("a.xlsx")){ XSSFSheet sheet = (XSSFSheet)book.createSheet("シート1"); IntStre…

Wicket Page で getResource と Test class での getResource

Webプロジェクト src/main/resources に置いたファイルを WebPage でも、 src/test/java で書くテストクラスでも読込みたい。個別のクラスローダーで読みたく ClassLoader.getSystemClassLoader() を使ってしまうと 読めないので、Wicket の WebApplication …

Wicket が、8.2.0 になった!

Wicket 8.2.0 がリリースされた!ただし、com.googlecode.wicket-jquery-ui は、8.1.0 のままだ。wicket-guice も、最新の guice 4.2.2 に依存になっているので注意guice 4.2.2 は、Java 11 対応のビルドのことで、diff が見当たらない。

メソッド参照の否定形

先日、Java11 の String の strip と isBlank が便利で、Wicket を使う時に 楽になることを書きました。 oboe2uran.hatenablog.comでもこのラムダの記述をメソッド参照で書けないかと再興しました。元ソース final TextField<String> itemField = new TextField<>("i</string>…

ZIP の脆弱性??Zip Slipディレクトリトラバーサル脆弱性

私のプロジェクトにも、Apache commons-compress を使ってるせいなのか、 Git-Hub から通知が来てしまいました。→ yipuran-compress We found a potential security vulnerability in one of your dependencies. Only the owner of this repository can see …

Java11 String の strip と Wicket の TextField 入力値の取得

Java11 になって、地味に嬉しいのが、java.lang.String の strip() メソッドでしょう。Java10 までは、Wicket の TextField<String> の入力値の取得も、 できるだけ Optional を使って書いても、結局、前後に入力された全角空白を取り除く処理を 書かないとなりませ</string>…

Java11 からの HttpClient

先月、OpenJDK 11 もリリースされて、Java9 でインキュベータとして出てた HttpClient が、 java.net.http パッケージに入った。 去年、Java9 の HttpClient を試す - Oboe吹きプログラマの黙示録 を書いたのだが、 リクエストの送信も、Java11 から、、Http…

Java祝日計算の対応

昨日、やっと2019年に追加される祝日が、政府内閣から発表、 祝日の間に挟まれて休日になる「国民の休日」が、敬老の日と秋分の日で、数年に1回しか発生しない パターンから、2019年だけのプログラム泣かせになってしまった。 ちなみに、秋分の日は…

jsTree で下のツリー階層を開く時にもAJAX通信で読み込む方法

jsTree配布デモを見ても、ツリー全体JSONをAJAXで読み込む方法はあるが、 静的に書いたJSON から下の階層を開く時や、AJAX読込み後さらに下の階層を読み込む方法が、 なかなか解らなかった。massload とかプラグインあるみたいだが、どうもできない。。。 ク…