torutkのブログ

ソフトウェア・エンジニアのブログ

Java

JavaFXアプリケーションのJDK 11対応(NetBeans編)

はじめに これまでにNetBeans 8.2/JDK 8のAntプロジェクト(種類はJavaFXアプリケーション)で作成したJavaFXアプリケーションを、JDK 11に対応させようと試みました。 NetBeans は間もなくリリース予定のNetBeans 10のテストバージョン(vc4)で、OpenJDK 1…

JDK 11の環境設定

JDK 11から、Oracleが提供するWindows OS向けのJDKは、Oracle JDKとOpenJDKの2種類になりました。Oracle JDK 11は、有償で技術サポートが含まれ、LTS(長期サポート版)となる商用製品となりました。なお、開発・試験・デモ用など使用用途に制限のあるOTNラ…

5月の土曜日は・・・

今日は子供の小学校の運動会でした。うちの子の小学校はだいたい5月後半の土曜日に開催されます。近所の小学校だと先週の土曜日に開催されるところもありました。今日は日本Javaユーザーグループ主催のカンファレンスJJUG CCC 2018 Springの開催日であり、さ…

Javaの変質、どこに向かうのか

昨年9月にJava SEのメジャーバージョンアップとなるJava SE 9がリリースされました。このJava SE 9のリリースまでは、メジャーバージョンアップがおよそ2〜3年毎に行われてきました*1。しかし、Java SE 9を基点として、今後は半年ごとにリリースする、という…

launch4jを使ってexe化したJavaプログラムが、あるWindows機で実行できない

id:torutk:2017で、同じくlaunch4jでexe化したJavaプログラム(JSatTrak)が起動しないというエラーがありました。同じマシンで、FreeMindを起動しようとしたときに、同じエラーが発生しました。FreeMindも、launch4jを使ってexe化されていまあす。別なWindo…

衛星の位置と軌道を表示するプログラムJSatTrak

TLE形式のデータを読み込むライブラリがないかと探していたところ、TLEから衛星の位置と軌道を表示するプログラム[JSatTrak」が公開されているのを見つけました。 http://www.gano.name/shawn/JSatTrak/TLE形式の軌道情報を読み込み、衛星の位置と軌道を2次…

Java SE 9で小さなプログラムを動かすためのJavaVMオプション指定

先日、アナログ時計表示プログラムをJava SE 9のモジュール化対応をしました。 AnalogClockプログラムをJava SE 9のモジュール化 - torutkの日記 次は、Java SE 9での実行です。 Java SE 9からは正式リリースに32bit版が含まれず、64bit版のみとなっています…

AnalogClockプログラムをJava SE 9のモジュール化

既存のJavaプログラムを、Java SE 9モジュール対応させてみることにします。 対象は、次のリポジトリにある、デスクトップにアナログ時計を表示するJavaFXプログラムです。 https://github.com/torutk/AnalogClockGadget作業開始時点では、JDK 8でビルド・実…

JavaOne 2017セッションの動画鑑賞中

Modular Development with JDK 9 ライブデモ中心ではなく、説明中心だったのでちょっと追うのが大変でした。 モジュール機能の全体を把握するセッションです。モジュールの意義を再利用の観点で説明しています。ソースコードをコピぺするのではなく、コード…

Automatic Moduleを(続)

id:torutk:20171010で、JavaOne 2017のセッション"Migrating to Modules"の動画を見ながらデモのtweetsumを倣って作ってみたところ、モジュールのコンパイルでjacksonのJARファイルが参照できないエラーが発生したことを書きました。この件について@skrbさん…

Automatic moduleを

JavaOne 2017の公開動画「Migrating to Module」を見ながらWindows上のJDK 9でAutomatic moduleの例を実行してみました。しかし、なぜかエラーになってしまいました。 D:\work\jigsaw\tweetsum>javac -J-Duser.language=en -d mods --module-path lib\ --mod…

JavaOne 2017の動画

JavaOne 2017のセッション動画がいくつか公開されています。今日はModule(Jigsaw)関係を2つほど見てみました。JavaOne 2017の興味あるセッションの動画・資料へのリンクを次にまとめています。 http://www.torutk.com/projects/swe/wiki/JavaOne_2017_SF M…

Java Magazine(オンライン誌)の最新号もJava 9特集

米Oracleがオンラインで出しているJavaの技術誌Java Magazineの2017年9・10月号が公開されました。 http://www.oracle.com/technetwork/java/javamagazine/index.html今号の特集名は「More Java 9」で、前号に続きJava 9特集となりました。 前号では扱えなか…

Java SE 9のライフサイクル

次のURLに、Java SE 9のサポートプランが掲載されています。 http://www.oracle.com/technetwork/jp/java/eol-135779.htmlこれによると、Java SE 8のアップデート(公開)は2018年9月迄(それ以降に延長となる可能性あり)です。 一方、Java SE 9 は2018年3…

Java SE 9リリースのニュース記事で気になった互換性について

米国時間で9月21日、日本では9月22日の早朝、Java SE 9がリリースされました。リリースのニュースがいくつか流れていますが、その中で次の記事にちょっと気になる表現がありました。 [速報]Java 9が正式リリース、Javaをモジュール化するProject Jigsawが…

JMH - Javaマイクロベンチマークハーネス(枠組み)

Javaプログラムにおいて、ある処理にかかる時間を計測したいということがあります。 Javaの実行環境(JavaVM:Java Virtual Machine)では、JITコンパイルやガベージコレクションがプログラム動作中に併せて動作し、プログラムの実行性能に少なからず影響を…

Java読書会「Javaで作って学ぶ暗号技術」を読む会(第1回)を終えて #javareading

今月から、新しい図書Javaで作って学ぶ暗号技術 - RSA,AES,SHAの基礎からSSLまでの読書会が開始です。本日は第1回を開催しました。本日は、通算222回目、34冊目となります。参加人数は11名、申込人数は9名なので参加率は122%! 平均参加人数は11.8人なのでほ…

Java読書会BOF「Javaで作って学ぶ暗号技術」を読む会開催 #javareading

Java読書会BOF 開催のJava読書会では、投票の結果今月23日(土)から始まる新しい書籍「Javaで作って学ぶ暗号技術」を読み始めます。Javaで作って学ぶ暗号技術 - RSA,AES,SHAの基礎からSSLまで作者: 神永正博,山田聖,渡邊高志出版社/メーカー: 森北出版発売…

JavaFX 3Dの座標系とカメラの向きについて

JavaFX 3Dの座標系があやふやでしたので、整理をするためにいろいろ調査・実験をしています。 JavaFX 2D、3Dの座標系の定義 JavaFX 2Dの座標系 JavaFX 2Dの座標系は右の図のように、画面左上隅を原点とし、横方向がX軸(右向きが正)、縦方向がY軸(下方向が…

JJUGナイトセミナー「Java O/Rマッパー特集」に参加 #jjug

開催案内ページは次です。 【東京】JJUG ナイトセミナー 「Java O/Rマッパー特集」 7/26(水)開催 - 日本Javaユーザーグループ/Japan Java User Group | Doorkeepertogetterまとめ 【東京】JJUG ナイトセミナー 「Java O/Rマッパー特集」 7/26(水)開催 #jjug …

JavaFX 3DのテクスチャマッピングとAffine変換

(7/17 勘違いがあり、文章を大分修正しています)JavaFX 3Dの座標系は、画面の横方向がX軸、画面の縦方向がY軸、画面の奥行き方向がZ軸となっており、X軸の正は右方向、Y軸の正は下方向、Z軸の正は画面の奥方向となっています。最初左手系の座標系と思って…

NetBeans IDEのFindBugs IntegrationプラグインをSpotBugsに差し替える

今年の5月に開催された JJUG CCC 2017 Spring のLTにおいて、FindBugs をフォークした SpotBugs の紹介を見ました。この場で、初めてSpotBugsの存在を知りました。https://speakerdeck.com/eller86/ji-efindbugsmasuta-spotbugs-3-dot-1-0-rc2-falsekoshao-j…

JavaFXでウィンドウが閉じるときの処理はsetOnCloseRequestよりshowingPropertyがよい(改題)

この日記は朝の時点では setOnCloseRequest でウィンドウが閉じるときの実装について書いていました。次のツイートで、もっとよいやり方を教えてもらいましたので、showingPropertyを使う方法を追加しました。@boochnich WindowのshowingPropertyに対してadd…

JavaFXでガジェット風プログラムのサポートクラス作成 #jjug_ccc #ccc_m6

はじめに 先月5月20日(土)に、JJUG CCC 2017 Springで「JavaFXでデスクトップガジェット風プログラムを作る」のセッションを行いました。セッションのスライドは次です。 https://www.slideshare.net/torutk/jjugccc2017spring-m6-javafxこのセッションで…

パッケージ名の命名についてメモ

先月開催のJJUG CCC 2017 Springの「JavaFXでデスクトップガジェット風プログラムを作る」セッションで、透明ウィンドウ化とそれに伴うウィンドウの移動・大きさ変更・閉じる・などの振る舞いの実装を紹介しました。 複数のガジェット風プログラムを作るとき…

Java SE 9ではHotSpot Client VMが無くなるとのこと

次の記事で、「32ビット版WindowsのClient VMの削除」という記載を見かけました。 https://builder.japan.zdnet.com/sp_oracle/35095997/64bit版のOSで、64bit版のJavaVM上でJavaのプログラムを多数実行する場合、各Javaプロセスが使用するメモリとCPU使用率…

プレゼン資料準備 #jjug_ccc #ccc_m6

5月20日(土)に日本Javaユーザーグループ主催のJavaイベント JJUG CCC 2017 Spring が開催されます。今回は、20分のセッションで「JavaFXでデスクトップガジェット風プログラムを作る」というお題で話をさせていただきます。時間は夕方16:45〜17:05です。Ja…

Java Web Startを久々に使ってみた

NetBeans IDEでJavaFXアプリケーションを作成すると、実行可能JARファイルの他に、JNLPファイルとHTMLファイル群が生成されます。いつもは実行可能JARファイルだけを取り出していますが、今回はJava Web Startでアプリケーションを実行できるかを試みてみま…

java.util.ListIteratorのnextとpreviousの振る舞いメモ

JavaFXでページめくりをするUIを作るにあたって、その処理の中で、ページ名を格納したListからlistIteratorを取得し、ページめくり操作のUIとして用意した[前へ]、[次へ]ボタンを押すと、listIteratorのprevious、nextで次のページ名を取得する実装をしてみ…

Java 8 Stream APIでプリミティブ型の2次元配列を生成

はじめに id:torutk:20170114 で、書籍「Deep Learning Javaプログラミング」のサンプルコードをfor文からStream APIに書き換えてみました。ただしこの日はforEachで処理を書くところで妥協しました。Stream APIを使ってデータ処理をプログラミングすること…