Lazy Diary @ Hatena Blog

PowerShell / Java / miscellaneous things about software development, Tips & Gochas. CC BY-SA 4.0/Apache License 2.0

Entries from 2022-02-01 to 1 month

JaCoCoのデータから行単位のbranch coverage (C1 coverage)は復元できない

JaCoCoはC1 Coverageが取れると言っておきながら実際に取れるのはC1(分岐網羅)でなくC2(条件網羅)という問題がある。 この問題に対して、JaCoCo組込みのReportGeneratorを改造するか、またはReportGeneratorを改造するかして、コードカバレッジのデータ…

Java用SSHクライアントライブラリの比較

背景 JavaによるOLTP処理の中で、「別サーバのauthorized_keysに指定されたコマンドをパスフレーズなしのSSH鍵でキックし、その戻り値を確認する」という処理を行いたい場合、外部コマンドとしてSSHを起動するのはいかにも手間がかかる。 そこで、Javaで実装…

タスク スケジューラからPowerShellを起動するとき-Commandオプションのパラメタをシングルクォートで囲んではいけない

前提 タスク スケジューラで作ったタスクで、操作に「プログラムの開始」でpowershell.exeを指定し、「引数の追加」で-Commandオプションと実行したいスクリプトを指定すれば、タスク スクリプトから任意のコマンドを実行できる。 参考: https://www.netspi.…

PowerShellはまり道

github.com この処理を書くときに久しぶりにいくつかはまったのでメモ。 .ps1ファイルの文字コードをBOMなしUTF-8にすると日本語コメントがあったときに誤動作する。たとえばAdd-Typeの後のヒアドキュメントが正しくヒアドキュメントと認識されずに単一行文…

PowerShellでHashSetのForEachメソッドを使う

$map = New-Object System.Collections.Generic.HashSet[string]; $map.Add("ABC") > $null $map | Get-Member とすると出てこないが、PowerShell ISEなどでオートコンプリートを使うとHashSetにForEach()というメソッドが生えていることが分かる。 このForE…

C argv[0] equivalent for Java

In C, you can get the name of the binary file called from the shell with argv[0]. In Java, it seems there is no obvious way to get the equivalent: the name of the class that has the entry-point main() class. I made three options, but none …