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

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

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

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

C言語(Win32 API)を使ってWindowsアプリケーションを開発している時に、Unixエポック(1970年1月1日)からの経過時間を秒単位ではなくミリ秒単位で取得する必要に迫られました。

Unixエポックからの経過時間を秒単位で取得するのであればtime関数を使うだけで済むのですが、ミリ秒単位で取得する場合は少しコードを書く必要がありました。今回は、WindowsでUnixエポックからの経過時間をミリ秒単位で取得する方法を紹介します。

MSYS2 MinGW GCC環境をつくる(その3)です。今回は、GTK+アプリケーションの作成に必要なライブラリのインストールと構成をして、実際に簡単なGTK+アプリケーションを作成します。

とある事情で、GTK+3.0ウィンドウ・アプリケーションを作成してLinuxで動かすことになりました。普段はWindowsを使っているので、Linuxで開発作業を進めていくのが億劫です。(ゲストOSとしてLinuxをインストールしてその中で作業をすることになってしまいますので)

できることなら、開発作業はWindowsで進めていきたい。ということで、WindowsにMSYS2 + MinGW GCC環境を構築してGTK+3.0アプリケーション開発ができる環境を作っていきます。最終的にはアプリケーションのソースコードをそのままLinux環境でビルドします。

Javaで簡単にPDFの作成・加工ができるライブラリー Apache PDFBox。用紙サイズのプリセットとしてPDRectangle.A4PDRectangle.A3が定義されていますが、これらの用紙はすべて縦向きになっています。

A4横などの横向き用紙にしたいときはどうすれば良いのでしょうか?

今回は、Apache PDFBoxで用紙を横向きにする方法を2つ紹介します。

Androidアプリケーションのコンポーネントには、アクティビティ、サービス、コンテンツ プロバイダ、ブロードキャスト レシーバーの4種類があります。アクティビティは画面を持つコンポーネント、サービスはバックグランドで動作するコンポーネントです。

アプリケーションの形態によっては、バックグランドで動作しているサービスからアクティビティを開始して画面表示をしたい、といったことがあります。

startActivityメソッドでインテントを送信することでアクティビティを開始する方法が良く知られていますが、実はこの方法には状況によって5秒程度の時間がかかるという落とし穴があります。

リモートデスクトップの既定の設定では、ユーザーごとにセッションを1つしか確立できないように制限されています。

これは、複数のメンバーが共同でサーバーの管理をおこなっているような場合に不便に感じることがあります。それぞれのメンバーが個別のユーザーアカウントを利用していれば良いのですが、Administratorアカウントを共用していたりすると、他のメンバーがリモートデスクトップ接続したときに既存のメンバーのリモートデスクトップ接続が勝手に切断されてしまうことになります。

ユーザーごとの1セッション制限を解除することで、この問題を解決し複数のメンバーが同時にAdministratorアカウントを使ってリモートデスクトップ接続ができるようになります。

今回は Windows Server 2016 での設定方法を解説します。

VMware Workstation 12 PlayerにはISOディスクイメージからOSの種類を判別して適切な構成でインストールする簡易インストール機能があります。

とても便利なのですが、この簡易インストール機能をWindows Server評価版のインストールに使用すると、

マイクロソフト ソフトウェア ライセンス条項が見つかりません。インストール元が有効であることを確認し、インストールを再実行してください。

このようなメッセージが表示されてインストールに失敗してしまいます。