java

NetBeansからQuarkusを使う

Quarkusです、Quarkus。 Mavenのアップデート QuarkusのビルドにはMaven 3.5.3が必要ですが、NetBeans11にバンドルされているMavenは3.3.9なので、そのままではビルドなどができません。 ということで、Mavenの最新版をダウンロードしてどこかに解凍します。…

Windows(Cygwin)でSDKMANがうまく動かないのはcurlのせい

WindowsでCygwin使ってSDKMANを動かしてみたのですが、うまく動きませんでした。 なんかファイルをダウンロードしてるのに、ファイルがみつからないと言ってます。というか、curlがなんか文句いってますね。 $ sdk install micronaut Downloading: micronaut…

switch式の値付きbreakはyieldになる?

前のエントリではswitch式で値を返すのはbreak-withになると書いてましたが、yieldにしようぜーという議論が勃発しています。 switch式の値付きbreakはbreak-withになることがほぼ確定(追記あり) - きしだのHatena というか、JEPはすでにyieldになっています…

switch式の値付きbreakはbreak-withになることがほぼ確定(追記あり)

Java12でプレビューとしてswitch式が入って、Java13で正式化できるよう作業が進んでいます。 そんな中、switch式を正式化するJEPのドラフトが出ていました。 JEP draft: Switch Expressions 追記 あっというまにドラフトではなくなっています JEP 354: Switc…

QuarkusのHibernate ORM with Panacheでid不要ならPanacheEntityBaseを使う

Quarkusを試していて、Hibernate ORM with Panacheを使ってみると、ちょっとハマった。

jpackageでJavaアプリのインストーラーを作る

Javaアプリケーションのインストールパッケージを作れるjpackageが、どうもJDK13に入りそうな勢いでEarly Accessが出てたので試してみます。 jpackageは、JavaFXにあったjpackagerをベースにしたパッケージングツールです。 JEP 343: Packaging Tool EAはこ…

PostgreSQLのリアクティブアクセスをネイティブ化できなかった

とりあえずメモ的に。 R2DBCとmicronaut+reactive-pg-clientの2通りでnative-imageを試したけど、nettyまわりでだめだったという話 R2DBC リアクティブデータアクセスとしては本命? R2DBC R2DBCはセントラルリポジトリにないので、springのリポジトリを使い…

PostgreSQLへのJDBCアクセスをネイティブ化する

PostgreSQLへのJDBCアクセスがあるコードをGraalVMでネイティブイメージ化するとき、org.postgresql.core.v3.ConnectionFactoryImplの対応が必要だったのでメモ たとえばこんな感じでPostgreSQLにアクセスします。 public class Main { public static void m…

Scalaをネイティブコンパイルする

以前、Kotlinをネイティブコンパイルするという話を書いたので、今回はScalaをネイティブコンパイルしてみます。 Kotlinをネイティブコンパイルする - きしだのはてな 今回はGraalVMのnative-imageでのネイティブ化とScala Nativeでのネイティブ化を比較して…

ところでJavaのRaw Sring Literalsはどうなってるの?

Java12に入るとされたRaw String Literalsですが、結局は仕様から落とされました。 理由としては、貴重なクオート文字であるバッククオートをそんな簡単に使っていいの?というのが主題でした。 Raw Stringの議論では、インデントの扱いをどうするかが主で、…

Truffle言語で関数呼び出しを実装する

Truffleを使って言語を実装してみたのだけど、やはり関数呼び出しもやりたい。 Truffleでの言語実装を最小手数ではじめる - きしだのはてな 簡易Truffle言語に変数を実装する - きしだのはてな とりあえず関数 今回、関数は埋め込みで呼び出しだけ行ってみま…

Truffle言語をGraalVMで動かす

Truffleを使って実装した言語をGraalVMで動かす方法、なかなか難しい。 まとめると、言語実装のクラスパスはtruffle.class.path.appendで追加して、言語利用側は普通のクラスパス、ということでした。 ということで、言語実装をlangに、起動プログラムをlaun…

簡易Truffle言語に変数を実装する

Truffleで足し算してみたけど、やっぱちょっと変数を実装しておきたい。 Truffleでの言語実装を最小手数ではじめる - きしだのはてな ということで、変数を追加するんだけど、ここでは変数定義はせずに埋め込み変数みたいなものを実装してみます。 変数登録 …

Truffleでの言語実装を最小手数ではじめる

あけましておめでとうございます。 ということで、Truffleで言語実装したい気分なので、まずはJyukutyoの数式処理から始めることにしました。 オレオレJVM言語を作ろう! How to create a new JVM language #Graal #Truffle - Fight the Future けど、APIが…

フルスタックJVMマイクロサービスフレームワークMicronautをネイティブコンパイルする

MicronautはJVMで動くフルスタックのマイクロサービスフレームワークです。 GroovyでRailsっぽいことをするフレームワークGrailsを作ったチームが開発しています。 仕組み的な特徴としては、DIをコンパイル時に解決するというところですね。 Micronaut Frame…

JavaのマイクロサービスフレームワークHelidonを試す

HelidonはMicroProfileに対応したフレームワークです。 Helidon このあたりで紹介されていますね。 Oracle、Java用のマイクロサービスフレームワーク「Helidon」を発表 - Computerworldニュース:Computerworld HelidonにはシンプルなSEとMicroProfile対応の…

Spark FrameworkをGraalVMでネイティブコンパイルする

Spark FrameworkをGraalVMでネイティブコンパイルしてみます。 maven-assembly-pluginでfat jarをつくる native-imageに--report-unsupported-elements-at-runtimeをつけてだまらせる という感じで。 SparkFrameworkのdependencyを登録します。 <dependency> <groupId>com.sparkja</groupid></dependency>…

ベンチマークフレームワークがJDK12に、とかIBMがRed Hatを買収とか

Oracle Code Oneとかいろいろあってワタワタしてる間に、いろいろありました。1ヶ月にしては いろいろなかったとも言える。 JDK 11.0.1リリース スケジュールどおりJDK 11.0.1が出てますね。 http://jdk.java.net/11/ Oracle Code One 2018終了 Oracle Code …

Oracle Code One - day 4

ということでOracle Code One最終日。4日は短い。 The Future of Java SE[DEV6323] Java SEの今後という話。 寝坊したので、入ったときにはJEP 11やJEP 12の話をしてました。--enable-previewってJEP12だったんだ、という気づきがあった。 JEP 11: Incubator…

Oracle Code One - Day 3

JavaOneから名前が変わったOracle Code Oneに来てます。 3日目ですが、2日目にふたつセッションを持ってしまってその準備で余裕がなかったので、セッションに出るのはここからでした。ふたつ(120分+45分)は無理だったー Production-Time Profiling and DIagn…

2つのJEPがJDK12のproposalに追加とかOpenJDKのLTSとか

サボってる間にもいろいろあったのでまとめておきます。 2つのJEPがJDK12のproposalに追加 新たにJEPがふたつ追加されました。 JEP 340: One AArch64 Port, Not Two JEP 341: Default CDS Archives JDK12のリリーススケジュールが正式に発表 最初のProposal…

Java11、JavaFX11リリース!Java12EAにはRSLが入った

Java11リリース! Java11がリリースされました!こちらでダウンロードできます。 http://jdk.java.net/11/ ビルドは28で、8/23にでたRC1そのままになっています。 Mark Reinhold氏の言ったとおり、最後のビルドになりましたね。 JDK 11: First Release Candi…

JDK12は3/19リリース。あとOpenJDKのGithubリポジトリができた

9/25のJDK11リリースまで1週間となりました。 JDK12のスケジュール提案 そんな中、JDK12のスケジュールの提案が出てますね。2019/3/19リリースの予定です。 2018/12/13 Rampdown Phase One 2019/01/17 Rampdown Phase Two 2019/01/31 Release-Candidate Phas…

Raw String LiteralsがJDK12のJEPに

Raw String Literals(RSL)がJDK12のJEPにProposalとして入りました。RSLはバッククオートで囲って改行やダブルクオートなどを含む文字列を表記する仕様です。 Amberで検討されているJava構文の変更 - Qiita 必要なAPIやコンパイラでの対応はすでにレビュー中…

JDK 11 RC1リリースと、Loomの継続は継続なの?疑惑

バグが2つ残っていて遅れたJDK 11 RC1が先週末にでてますね。「そして運がよければ最後の!」 by Mark Reihhold JDK 11: First Release Candidate 昨日さくらばさんがLL2018でLoomの話をしてTwitterがにぎわってから、Loomで言ってる継続はほんとに継続なの…

JDK12の最初のJEPはSwitch Expression(Preview)

JDK12に最初のJEPが入りました。 JDK 12 JEP325 Switch Expressions(Preview)です。 JEP 325: Switch Expressions (Preview) 拡張Switchについては、Qiitaでまとめていますが var a = switch(f){case 0->false;default->true;}のような書き方ができるような…

Project LoomでJavaでの継続(Continuation)を試す

Project Loomは、Javaで継続(Continuation)やFiber(軽量スレッド)、末尾呼び出し最適化なんかを実現するプロジェクトです。 OpenJDK: Loom そのLoom、ながいことどうやって動かすかもよくわからない感じだったのが、先日のJVMLSにあわせてプロトタイプが公開…

ロケールを指定してJShellを起動

J-Duser.language=enをつける C:\Users\naoki>java\jdk-10.0.1\bin\jshell -J-Duser.language=en | Welcome to JShell -- Version 10.0.1 | For an introduction type: /help intro

Java11 API Changes

JDK11 features are frozen since it was in the Rampdown phase last month. Big changes are listed in this page as JEPs. JDK 11 However there are many changes outside of JPEs in JDK 11, therefore I list up the API changes in JDK 11 as far as …

Java11でのAPI変更を雑に列挙

先月末でJDK11はRampdownフェーズに入って、機能凍結されました。 なので、今後はAPIの追加・削除・変更はほとんどないと思われます。 おそらく、機能的には現在でているea20とほとんど同じものがJava11としてリリースされることになると思います。 JDK 11 E…