Java 9の新機能 Project Jigsaw (プロジェクト・ジグソー)でJavaに待望のモジュール機能が追加されました。
Jigsawによるモジュール化は自作アプリケーションやサードパーティー製ライブラリの依存関係の解決に役立つだけではありません。Javaの標準クラスライブラリも複数のモジュールに分割され、必要なモジュールのみで構成された小さなJava Runtime Environment(実行環境)を作成できるようになりました。
この小さなJREを作る機能はモジュール対応していない(Java 8以前の)アプリケーションでも利用することができます。
JREが小さくなればアプリケーションにバンドルするのも容易になりますね。Project Jigsawを使って小さなJREを作成する手順をまとめました。
同じEclipseワークスペースにC/C++プロジェクトだけでなくJavaプロジェクトも混在させていると、不意にすべてのC/C++プロジェクトのビルドが実行されてしまうことがあります。
Javaで簡単にPDFの作成・加工ができるライブラリー Apache PDFBox。用紙サイズのプリセットとしてPDRectangle.A4
やPDRectangle.A3
が定義されていますが、これらの用紙はすべて縦向きになっています。
A4横などの横向き用紙にしたいときはどうすれば良いのでしょうか?
今回は、Apache PDFBoxで用紙を横向きにする方法を2つ紹介します。
Androidアプリケーションのコンポーネントには、アクティビティ、サービス、コンテンツ プロバイダ、ブロードキャスト レシーバーの4種類があります。アクティビティは画面を持つコンポーネント、サービスはバックグランドで動作するコンポーネントです。
アプリケーションの形態によっては、バックグランドで動作しているサービスからアクティビティを開始して画面表示をしたい、といったことがあります。
startActivity
メソッドでインテントを送信することでアクティビティを開始する方法が良く知られていますが、実はこの方法には状況によって5秒程度の時間がかかるという落とし穴があります。
マイナンバー カードを使って無料でPDFに電子署名ができる JPKI PDF SIGNER がリリースされました!
私も会社設立時にJPKI PDF SIGNERを使って電子定款に電子署名をしました。これだけで、定款に必要な収入印紙 4万円を節約することができました。
設定の読み込みなどの初期化処理のためにプログラムの起動に時間がかかることありますよね。ユーザーがプログラムをダブルクリックして起動しようとしたときに、すぐに反応がないと「あれ?ちゃんとダブルクリックできていなかったかな?」と心配になったり、さらにもう一度ダブルクリックしてしまうこともあります。
少しでも起動に時間がかかるプログラムの場合は、先にスプラッシュ・スクリーンを表示しておくことで、ユーザーにプログラムの起動が始まっていることが伝わります。また、スプラッシュ・スクリーンに目を通している間にプログラムが起動することで起動時間を体感的に短く感じる効果もあります。
今回は、JavaFXアプリケーションでスプラッシュ・スクリーンを表示する方法を紹介します。
Java 8u40で、待望のメッセージ・ダイアログがJavaFXに追加されました。 Alert
クラスとして提供されるメッセージ・ダイアログはとても便利なんですが、少しだけ不満もあったります。
その不満の1つが「いつもスクリーンの中央に表示されてしまうこと」です。
メッセージ・ダイアログには親ウィンドウが存在することがほとんどですから、スクリーンの中央ではなく親ウィンドウの中央に表示して欲しいものです。
今回は、JavaFXのメッセージ・ダイアログを親ウィンドウの中央に表示するテクニックを紹介します。
Javaでプラグイン機構を作ったときのお話です。プラグインをJARファイルとして実装して動的にロードさせることは簡単にできたのですが、そのプラグインJARファイルがネイティブライブラリー(DLL)を必要とした場合に、DLLを動的にロードさせるのに手間取りました。
実行時にjava.library.path
を変更して、ユーザーが指定した場所にあるDLLをロードできるようにする方法を紹介します。
実行プログラムと同じ場所にある設定ファイルを読み取るために、実行プログラムのファイルパスを取得したいことありますよね。
Javaの実行プログラム(実行可能JARファイル)の実行時ファイルパスを取得する方法を紹介します。
2017年7月10日~11日までの2日間開催されていたAmazonプライムデーで、Fire HD 8が半額の5,980円で販売されていたので購入してみました。
この端末にはFire OSという専用のOSが搭載されているのですが、中身はほとんどAndroidです。
ADB
接続も簡単にできるのでAndroidアプリケーション開発時の動作検証用タブレット端末としても役立ちます。開発用PCのスペックが低いとAndroidエミューレーター起動するのも重荷ですからね。実機があるとデバッグも楽になります。
今回はFire HD 8のADB
を有効にしてAndroid Studioから認識できるようにする方法を解説します。
Javaでアプリケーションを作っているときに漢字の読み仮名を取得したいことがありました。探してみたのですがJavaだけで実現する方法は見つからず。Windowsであれば、imjpapi.dll
を使うことで読み仮名を取得できることが分かりました。
そこで、Javaから呼び出せるようにimjpapi.dll
のラッパーを作成してみました。
軽量なJava Servletコンテナ/WebサーバーであるJetty 9.4.2がリリースされました! Windows版はJetty for Windowsからダウンロードすることができます。
OpenCVはIntelが公開しているオープンソースの画像解析ライブラリです。今回はAndroidからOpenCVを使ってカメラ映像から人の顔を検出するプログラムを作ってみます。使用するOpenCVのバージョンは昨年末にリリースされたばかりの3.2を使用します。
AudioStreamクラスを使うと、驚くほど簡単に音声のリアルタイムストリーミングを実装することができます。今回は2つのAndroid端末間で音声を一方向に送信するということをやってみます。
以前の記事でJDKのインストーラーからファイルを抽出してインストールせずにJDKを使用するバッチファイルを紹介しました。あのバッチファイルではx86(32ビット版)のJDKイントーラーにしか対応していませんでした。今回は、x64(64ビット版)にも対応したJDK抽出用バッチファイルを紹介します。
Android Studioを使用してアプリケーションを開発しているときに、以下のエラーが表示されjcenterに接続できないということがありました。
Could not get resource 'https://jcenter.bintray.com/com/android/tools/build/gradle/1.2.3/gradle-1.2.3.pom'.
Could not HEAD 'https://jcenter.bintray.com/com/android/tools/build/gradle/1.2.3/gradle-1.2.3.pom'.
peer not authenticated
どうやら極めて特殊なプロキシー環境下でHTTPSを使用してjcenterに接続しようとするとエラーになってしまうようです。
Eclipseを使ってJava FXのプログラムを書き始めたら、なぜかJava FXクラスの自動補完が機能しませんでした。 JDK 1.8にはJava FXのライブラリーが標準で含まれているはずですが・・・。
調べてみたところ、EclipseでJava FXの開発をするときには e(fx)clipse - IDE
をインストールする必要があるということでした。
Java Native Interface (JNI)用のDLLをVisual Studio 2012で作成していたときのことです。IntelliSenseが式にはポインター型が必要です
というエラーメッセージを出力するので悩んでしまいました。ビルドは成功するのですが、なぜかインテリセンスのエラーが消えません。
原因を調べてみると、Visual Studio 2012の不具合であるということが分かりました。
exewrap バージョン 1.0.1をリリースしました。exewrapはJavaアプリケーション(実行可能JARファイル)をWindowsの実行ファイルEXE形式に変換するツールです。ウィンドウ・アプリケーションだけでなく、コンソール・アプリケーション、Windowsサービスにも対応しています。
バージョン 1.0.1ではWindowsサービスの機能が強化され、ユーザー アカウント制御(UAC)に対応しました。