2018年9月、Java 11がリリースされました。Java 10までは開発用のJDKと実行環境のJRE、2つのパッケージが提供されていたのですが、Java 11からJDKのみとなりJava実行環境(JRE)は単体配布されなくなりました。

オラクルが配布している Oracle JDKOracle OpenJDK だけでなく、ほかの OpenJDK ビルド AdoptOpenJDKZulu OpenJDK でもJREは配布されていません。

どうして、JREが配布されなくなってしまったのでしょうか?

Java 7以降のOracle JDKにはjavapackagerというJavaアプリケーション配布パッケージを作成するツールが付属していたのですが、残念なことにOpenJDKにはjavapackagerは含まれていません。

今回は、javapackagerを使わずにOpenJDKでJavaアプリケーション配布パッケージを作成する方法を紹介します。作成するパッケージにはJavaアプリの実行に必要なJRE(Java Runtime Environment)が含まれるようにして、配布パッケージを展開するだけでJavaアプリを実行できるようにします。

2018年9月25日にJava 11正式版がリリースされました。このバージョンからJDKにJavaFXが同梱されなくなったため、JavaFXアプリケーションの開発には別途OpenJFXの導入が必要になりました。

この記事ではWindowsにOpenJDKOpenJFXを導入する方法を解説します。

gtkmmを使ってC++でGTK+アプリケーションを開発しています。ウィンドウの一部が透過している非矩形のウィンドウを作ろうとしたのですが、 Windowsではウィンドウの背景が透過するのにUbuntu(Linux)ではウィンドウの背景が黒く塗りつぶされてしまいずいぶんと悩みました。

GTK+で透過ウィンドウを作成するために試行錯誤したときの解決メモと非矩形ウィンドウのサンプルコードです。

アプリケーション開発にデバッガ―は欠かせません。ソースコードにブレークポイントを設定してステップ実行したり、実行中の変数の中身を確認したり。デバッガ―を使えるようになれば、バグを短時間で見つけて解決できるなどアプリケーションの品質向上に繋がります。

今回は、Jettyで実行しているWebアプリケーション(WARファイル)をEclipseからデバッグする方法を紹介します。

前回の記事ではEclipseでビルドしたWARファイルを手動でJettyにデプロイ(配備)する方法を説明しました。

実際の開発では動作確認のために何度もビルド→デプロイをすることになりますので、手動でWARファイルのコピーを繰り返していては疲れてしまいます。

今回は、JettyEclipseを連携させてビルドからデプロイまで自動化する方法を紹介します。

前回の記事で作成したRESTアプリケーションをJettyを動かします。JettyJerseyライブラリを追加する手順、作成したWARファイルをデプロイしてブラウザから動作確認するところまでをWindows環境を例に説明していきます。

JettyJersey… 名前が似ていて混乱してしまいそうですね。

  • Jetty はサーブレットを動かすことができるWebコンテナ(アプリケーション・サーバー)です。

  • Jersey はJavaでRESTを扱うためのAPIであるJAX-RSのリファレンス実装ライブラリです。

Web APIといえば以前はSOAPでしたが、HTML5/JavaScriptによるSPA(Single Page Application)が台頭するにつれ、JavaScriptで扱い易いRESTに注目が集まっています。

Jerseyは、JavaでRESTアプリケーションを開発するためのJAX-RS(Java API for RESTful Web Services)リファレンス実装です。

今回はJerseyを使ってRESTアプリケーションを開発する手順を解説していきます。

データベースプログラミングで「レコードが存在しなければINSERTする」という処理が必要になることありますよね。この処理、簡単なようで意外と難しいんです。今日は、この処理を安全に実装するための方法と注意点を解説したいと思います。

とある開発プロジェクトに参加したときに、こんなJavaのコーディング規約に遭遇しました。

インスタンス変数のアクセス修飾子は private とし setter/getter メソッドを実装すること。

この規約は良くないですね。

Java 9の新機能 Project Jigsaw (プロジェクト・ジグソー)でJavaに待望のモジュール機能が追加されました。

Jigsawによるモジュール化は自作アプリケーションやサードパーティー製ライブラリの依存関係の解決に役立つだけではありません。Javaの標準クラスライブラリも複数のモジュールに分割され、必要なモジュールのみで構成された小さなJava Runtime Environment(実行環境)を作成できるようになりました。

この小さなJREを作る機能はモジュール対応していない(Java 8以前の)アプリケーションでも利用することができます。

JREが小さくなればアプリケーションにバンドルするのも容易になりますね。Project Jigsawを使って小さなJREを作成する手順をまとめました。