Java
Java 23 で文字列を表示するために println だけでよくなった
本題のとおりなので、早速コードを書いていく。 まず、 static void main を書いておく public interface HelloWorldClassAPI { static void main(String[] args) { // この中に Hello World を書いていく } }
JEP-430 String Template が気になったので簡単な範囲で調べてみた。 触ってみた系のブログが好きでない人は閉じてもらってよいです。 ざっくり JEP-430 の仕様が詳しいので、これを読むだけでだいたい必要なことは覚えられる processor."String Template" …
↓まとめた twitter.com
前回のエントリーのあとにマシンを M2 MBP に更新したので、前回のエントリーで環境構築したところ、失敗したので、そのメモ。 mike-neck.hatenadiary.com エラーの発生 OpenJDK をクローンした後に、 bash ./configure --disable-precompiled-headers を実…
Mac OS 12.3 + CLion で読むためのセットアップ (1) GitHub から読みたい時点のコードをクローンしてくる. ghq 使ったので、次のコード. ghq get \ --shallow \ --branch 'jdk-19+25' \ https://github.com/openjdk/jdk.git (2) Makefile を生成する. precom…
表記の通り、 Gradle プラグインの graalvm-native-image-plugin の v1.4.0 をリリースしました。 plugins.gradle.org このリリースでは以下の機能が追加されました。 シェアードライブラリーをビルドする機能(Java11 以降のみ) 上記の機能追加に伴う、 nati…
Windows 環境にて、 graalvm-native-image-plugin を利用している際に、タイトルにあるようなエラーが発生することがあるようです。 github.com どのような形にするのが良いか解決方法を検討中ですが、一時的に回避する方法として、 jar の Class-Path アト…
graalvm-native-image-plugin のバージョン v1.3.0 をリリースしました。このリリースでは、 native-image-agent で生成された serialization-config.json ファイルのマージ、 SerializationConfigurationFiles オプションのサポートを追加しました。以下の…
みんな Java やってる? どーも mike です! GraalVM 編、第XX話は GraalVM のエクスペリメンタルなプロダクト espresso Java bytecode を Java の上で実行?! ついに、試してみたよ〜 それでは、スタート!!! (以上、最近お気に入りのユーチューバーの前…
ServiceLoader で provide というスタティックメソッドを持ったクラスからもインスタンスを取得できる
Java9 のモジュールを利用すると `provide ... with ...` ディレクティブによって provider configuration ファイル(`META-INF/services/xxx.yyy`) を書かなくても `ServiceLoader` でインスタンスを取得できる
多分、日本で1,000,000番目に Java のモジュールシステムに詳しい人間になれた気がする— 引きこもり持田 (@mike_neck) 2021年2月18日 GraalVM の native-image で、 javac のネイティブイメージを作成した際に、 JavacTool(JavaCompiler の実装クラス) とい…
少し前になりますが、 graalvm-native-image-plugin を最新の GraalVM 20.3 に対応させました。
GraalVM 20.3 から TraceClassInitialization オプションが boolean 指定ではなく、 List 指定になっています。 そのため、 20.2 まで以下のようにオプションを指定していた場合、カンマ区切りの FQCN に修正する必要があります 〜 20.2 まで -H:+TraceClass…
JJUG ナイトセミナー初登壇してきた(LT は除く)。 で、これはその補足。 最後駆け足で紹介していた最近の Gradle の情報で、 Java toolchain(6.7) improovements(6.8) を実際に試してみた なお、すでに Java toolchain についてはすでにいくつかブログが書か…
…え、あれ? Fiber なくなったの? Project Loom はコケたということ?マジで?!調べてみた!
たぶん @yamadamn さんが既にやっているやつ。 調べることにした経緯は、 aws amplify cli のバージョンチェックがおかしいため。 github.com 上記のチェックでは、 java -version の結果が /(\d+\.)(\d+\.)(\d)/g にマッチすることを前提にしているが、どう…
正確なものは公式ドキュメントを読んでください。これは 2020-08-09 時点の単なるメモです。 www.graalvm.org マイナーフィーチャーリリースは 3 ヶ月ごとに行われる 2, 5, 8, 11 月の 17 日 新しいフィーチャーリリースは以前のものに取って代わる(以前のも…
ISO-8601 形式で入力した日時と現在時刻の差分を求める duration というツールをリリースしました。 github.com
表題のとおりですが、 0.5.0 をほぼ全部書き換えています。 API そのものは変更していないので、ユーザーが既存のビルドを維持する場合に現在の DSL に手を加える必要はありません plugins.gradle.org 正確には v0.6.1 を 2020-06-21 に v0.7.0 を 2020-06-3…
GraalVM の native-image を作る際に利用する config.json を自動生成させて、アプリケーションを複数回実行してマージするというのをやろうとしており、 JNI を使う Java アプリケーション(JNA ではない)を Gradle でビルドする必要が出てきたが、残念なこ…
proxy を取得する対象のインターフェースクラスで MethodHandles.lookup() を呼び出して MethodHandles.Lookup を取得する で取得した MethodHandles.Lookup のインスタンスから unreflectSpecial(Method, Class) を呼び出して、MethodHandle を取得する pro…
netty のコードで結構前に見かけて覚えていたけど、完全に失念してて悔しかったので、メモ 呼び出し側にとってはこういうコード書かれたらかなり邪悪だと思う。
複数のプロジェクトを行ったり来たりする際に、プロジェクトごとに Java のバージョンが違っている際は、たいてい IntelliJ が覚えていてくれるので、それほど困ってはいないのですが、世の中にはターミナルでなんでもこなす人がいるらしく、プロジェクトご…
date コマンドを使うときにいつもググって調べるくらいの unix 音痴で、 Java の JSR310 ならすぐできるのにと思うことが多いので、そのようなコマンドを作ることにしました。 github.com 機能はまだ作り込んでいなくて、まずはフォーマットを指定できるだけ…
ちょっと Java(Kotlin) でツールでも作ろうと思ったので、勉強のためにチュートリアルやってみた。やってみたという話なので何も深いことは書いてない。
JUnit Jupiter でのテストクラスの書き方は、世の中にたくさん、このブログよりも SEO に長けているブログの記事が見つかるので、それを参照されるがよい。 そうではなくて、ここでは JUnit Platform Engine の書き方、作り方の手引を書く。 ちなみに、僕は …
データベースの ERD を整理したいこともあり、よいツールはないものかと探していたところ、 eclipse ベースの DBeaver (読み方は「ディービーバー」だと思う、アイコンがビーバーだから)がよさそうだと思い、使ってみようとしたのだが…
表題のとおりです。 plugins.gradle.org