狠狠撸

狠狠撸Share a Scribd company logo
Javaデスクトッププログラムをふつーの
Windowsプログラムのように配布?実行
する方法とPCの動きが重くならないように
気を付けること
JJUG CCC Spring 2016 I-5
高橋 徹
高橋 徹の自己紹介
– コミュニティ活動
毎月1回読書会開催中
– ブログ等
? ブログ http://d.hatena.ne.jp/torutk/ 他
? Twitter @boochnich
2016-01~今
2015-06~12
アジェンダ
1. Java プログラムを使ってもらう
2. Windows インストーラー
3. メモリと CPU
4. 簡単につくる
5. あれこれ注文をつける
闯补惫补プログラムを使ってもらう
闯补惫补プログラムを使ってもらう
? 簡単な配布、インストール、実行
? CPUやメモリの使用は控え目
カレントディレクトリはjarファイル
を置いたフォルダではなくその上
のフォルダになるようにして下さ
い。32bit版JREの方にしてください。
よくあるJavaプログラム配布シーン
動かすにはJavaを入れてください
。JDKでもJREでも良いっす。
あっ、Javaはバージョン8でお願い
します。
あっ、Javaはバージョン8u40以上
でお願いします。
あっ、環境変数JAVA_HOMEを設
定してください。
バッチファイルのパスをファイル
を、プログラムを置いたフォルダ
に修正して下さい。空白の含ま
れるパスはだめです。
簡単な配布、インストール、実行
Microsoft Windows インストーラー
CPUやメモリの使用は控え目
Process Explorer の System Information画面
多数のJavaプログラム(64bit)を実行すると、
CPU、メモリとも増加量が著しい
闯补惫补プログラムを使ってもらう
? 簡単な配布、インストール、実行
? CPUやメモリの使用は控え目
? Windowsインストーラーを作成
? CPUやメモリの使用を抑制
アジェンダ
1. Java プログラムを使ってもらう
2. Windows インストーラー
3. メモリと CPU
4. 簡単につくる
5. あれこれ注文をつける
自己完結型アプリケーションスタンドアロンアプリケーション
Windowsインストーラー
? javapackager
– 次の機能を持つJDK標準コマンド
? CSSファイルをバイナリ形式に変換
? JARアーカイブファイルを作成
? 再配布用パッケージを作成
? JARファイルを署名
アプリケーション アプリケーション
JRE JRE
OS X
? dmg
? pkg
? mac.appStore
Linux
? rpm
? deb
Windows
? msi
? exe
Windowsインストーラー作成環境
? Java SE Development Kit 8
? WiX Toolset 3.10
http://wixtoolset.org
? NetBeans IDE 8.1
Microsoftのオープンソース第1号(2004年)
Windowsインストーラーの作成
デモ1
アジェンダ
1. Java プログラムを使ってもらう
2. Windows インストーラー
3. メモリと CPU
4. 簡単につくる
5. あれこれ注文をつける
PCのリソース(メモリとCPU)
典型的なノートPCの仕様
CPU Intel 2core/4thread 2GHz
メモリ 8GB
OS Windows 10 64bit
PCのリソース(メモリとCPU)
https://software.intel.com/en-us/articles/heterogeneous-computing-pipelining
典型的なノートPCの仕様
CPU Intel 2core/4thread 2GHz
メモリ 8GB
OS Windows 10 64bit
PCのリソース(メモリとCPU)
演算処理
(同時8命令)
L1キャッシュメモリ
(命令32KB + データ32KB)
L2キャッシュメモリ
(256KB)
Haswellマイクロアーキテクチャ
PCのリソース(メモリとCPU)
演算処理
(同時8命令)
L1キャッシュメモリ
(命令32KB + データ32KB)
L2キャッシュメモリ
(256KB)
thread thread
キャッシュ半減、競合増大
ハイパースレッディングに注意
CPU coreは2つだが、JavaVMから
はCPUが4つと見える。
PCのリソース(メモリとCPU)
Oracle Java RE 8
64bit版
Oracle Java RE
32bit版
JITコンパイルスレッド数(種類) 3(Tiered Compile) 1(Client Compiler)
GCスレッド数(種類) 4(Parallel) 1(Serial)
合計 7 2
JITコンパイル?GCスレッド数のデフォルト (CPU:Intel 2core/4thread)
(「Javaパフォーマンス」より)
64bit JavaVMはCPU数に応じてスレッドを使用
PCのリソース(メモリとCPU)
Oracle Java RE 8
64bit版
Oracle Java RE 8
32bit版
初期ヒープサイズ 128MB 16MB
最大ヒープサイズ 2GB 256MB
メタスペースサイズ 20.75MB 12MB
スタックサイズ(20スレッド分) 20MB 6.25MB
64bit JavaVMはメモリの使用が多い
ヒープ、メタスペース、スタックメモリのデフォルト (メモリ8GB搭載)
(「Javaパフォーマンス」より)
PCのリソース(メモリとCPU)
? Process Explorerツールで使用メモリを測定
– 入手先「Windows Sysinternals」
https://technet.microsoft.com/ja-jp/sysinternals/bb842062.aspx
– procexp.exe
http://ec.nikkeibp.co.jp/item/books/P94640.html
PCのリソース(メモリとCPU)
デモ2
PCのリソース(メモリとCPU)
Process Explorer の System Information画面
多数のJavaプログラムを実行すると、
CPU、メモリとも増加量が著しいJavaプログラムを32bit JavaVM上で実行すると、
特にメモリの増加量を抑制できた
Javaプログラムの配布とPCのリソース
? Windowsインストーラーを作成
? CPUやメモリの使用を抑制
? javapackagerでWindowsインス
トーラー(MSI形式)を作成
? 32bit JavaVMでCPUやメモリの
使用を抑制
アジェンダ
1. Java プログラムを使ってもらう
2. Windows インストーラー
3. メモリと CPU
4. 簡単につくる
5. あれこれ注文をつける
簡単につくる
? NetBeans IDE でWindowsインストーラー作成
インストーラー作成
メニューが用意
簡単につくる
デモ3
アジェンダ
1. Java プログラムを使ってもらう
2. Windows インストーラー
3. メモリと CPU
4. 簡単につくる
5. あれこれ注文をつける
あれこれ注文をつける
? JDK8のjavapackagerではできないこと
– 非ASCII文字での属性値設定
– メジャーアップグレード?インストーラー作成
– インストール先のカスタマイズ
– インストーラーUI
? WiX Toolsetの世界で制御する
あれこれ注文をつける
WiXソース
ファイル
(*.wxs)
candle.exe
light.exe
WiXオブジェクト
ファイル
(*.wxsobj)
WiXでMSI作成
Java実行環境
(JRE)
アーカイブファイル
(*.jar)
設定ファイル等
インストーラー
(*.msi)
あれこれ注文をつける
? javapackagerを-vオプション付きで実行
– javapackagerが%Temp%下に生成するWiXソースファイルのパスが表示
されるので、これを取得していじる
? <JDK>?lib?ant-javafx.jarに含まれるtemplate.wxsを取り出していじる
– javapackagerを実行するディレクトリ下に、
package?windows?JarManifestViewer.wxs のようにアプリケーション名
で保存すると、javapackagerがテンプレートとして利用する。
あれこれ注文をつける
デモ4
まとめ
– JavaプログラムをWindowsインストーラーで配布
– CPUとメモリを控え目に使うには32bit版Javaで実行
デモ内容
javapackager -deploy -native msi ^
-outdir dist -outfile JarManifestViewer ^
-srcdir dist -srcfiles jarmanifestviewer.jar ^
-appclass com.torutk.jarmanifest.JarManifestViewer ^
-description "View for JAR file manifest" ^
-name JarManifestViewer ^
-vendor Torutk ^
-BappVersion=1.0 ^
-Bwin.menuGroup="Torutk Tools"
デモ1
createmsi.ps1
デモ1
? Javapackagerで作成したMSIのインストール
デモ1
? javapackagerで作成したMSIのインストール
デモ1
? プログラム実行
デモ2
? メモリ
JDK 8u92 64bit版 JDK 8u92 32bit版
64bit JVM 32bit JVM
Private Bytes 318MB 88MB
Working Set - Private 110MB 50MB
Virsutal Size 3717MB 551MB
プロセスの使用メモリを調べるには、
Private Bytesを見るのが有用。
デモ2
? CPU(スレッド)
JDK 8u92 64bit版 JDK 8u92 32bit版
64bit JVM 32bit JVM
Private Bytes 318MB 88MB
Working Set - Private 110MB 50MB
Virsutal Size 3717MB 551MB
デモ3
プロジェクトを右クリックし、
プロパティを開く
デモ3
JavaFX種類のプロジェクト?プロパティでの設定
Windowsインストーラの作成
システム共通(Program Filess)
にインストール
デモ3
Javaアプリケーション種類のプロジェクト?プロパティでの設定
Windowsインストーラの作成
細かな設定が必要な場合は、
プロジェクトをJavaFXアプリケー
ション種類に切り替え
デモ3
?アプリケーション名
?インストーラーファイルの名称部分
?実行ファイル(.exe)名
?ショートカット名
?コントロールパネルの開発元
?スタートメニューのフォルダ名
?インストーラーファイルのバージョ
ン名部分
?コントロールパネルのバージョン
注記)日本語等非ASCII文字を指定するとエラーとなります
デモ3
プロジェクトを右クリックし、
パッケージとして > MSIインストーラ
を実行する
デモ3
ファイルタブを選択
プロジェクト下のdist?bundles下に
インストーラファイルが生成
デモ3
デモ4
(1)プロジェクト直下にpackage?windowsフォルダを作成
(2)JDKのlib?ant-javafx.jar をzip解凍ツールで
開き、
(3)その中からtemplate.wxs を
取り出し、
(4)JarManifestViewer.wxs に変えて保存
デモ4
(1)UUIDを生成
(2)JarManifestViewer.wxsの編集
<MajorUpgrade DowngradeErrorMessage="Already new
[ProductName] installed. Stopping to install." />
(3)javapackager実行
补遗
补遗
ソース
ファイル
(*.java)
コンパイラ
javac
クラス
ファイル
(*.class)
ソース
ファイル
(*.java)
クラス
ファイル
(*.class)
各種
リソース
ファイル
各種
リソース
ファイル
アーカイバ
jar
アーカイブ
ファイル
(*.jar)
外部
ライブラリ
(*.jar)
外部
ライブラリ
(*.jar)
Javaプログラムのコンパイルと実行の流れ(非インストーラー)
补遗
java
Java実行環境
(JRE)
アーカイブ
ファイル
(*.jar)
設定ファイル等
外部
ライブラリ
(*.jar)
外部
ライブラリ
(*.jar)
Javaプログラムのコンパイルと実行の流れ(非インストーラー)
补遗
javapackager
Java実行環境
(JRE)
アーカイブファイル
(*.jar)
設定ファイル等
javapackager でインストーラーファイルを作る
インストーラー
(*.msi)
javapackager は、Java SE 8u20から搭載
(それ以前のjavafxpackagerのリネーム)
外部ライブラリ
(*.jar)
外部ライブラリ
(*.jar)
补遗
インストーラー
(*.msi)
インストール
ショートカット
Java実行環境(JRE)
設定ファイル等
アーカイブファイル
(*.jar)
実行ファイル
(*.exe)
外部ライブラリ(*.jar)
补遗
Windowsのコントロールパネルから
プログラム名、発行元、バージョン等
を参照できる
アンインストールも簡単
コントロールパネルのプログラムと機能でインストール情報の確認
补遗
Windows Management Instrumentation
Windows OSのシステム情報の収集?監視?管理を行う仕組み
? Get-WmiObjectコマンドレット
リモートマシンの情報取得も可(-ComputerNameオプション)
MSI形式のインストーラでインストールしたものに限る
补遗
Windows OS上の主要インストーラー作成ツール
Windowsインストーラー(MSI)
? InstallShield
http://www.networld.co.jp/product/is/
商用製品。
Professional版(ノードロック)46万、
フローティング160万/ユーザー
限定版(LE)の権利がVisual Studio 2012~
(Professional以上)
? Visual Studio Installer
商用製品のVisual Studioの拡張機能(無償)
? WiX toolset
http://wixtoolset.org/
無償
Java SE 8のjavapackagerは、
WiX toolsetまたはInno Setupを使う
Windowsインストーラー形式(MSI)を作成するもの、独自インストーラー形式を作成するものが
ある
独自インストーラー
? Inno Setup
http://www.jrsoftware.org/isinfo.php
無償
? NSIS
http://nsis.sourceforge.net/
無償
补遗
WiX Toolsetのインストール
补遗
WiX Toolsetのインストール
补遗
WiX Toolsetのインストール
补遗
WiX Toolsetのインストール
补遗
WiX Toolsetのインストール
补遗
WiX Toolsetのインストール
补遗
WiX Toolsetのインストール
补遗
? WiX Toolset
– msiファイルからwxsを生成
WiXソース
ファイル
(*.wxs)dark.exe
インストーラー
(*.msi)
补遗
WiX Toolset参考情報
? WiXチュートリアル日本語訳
http://wix-tutorial-ja.github.io/toc.html
? 書籍(洋書)「WiX 3.6: A Developer’s Guide to Windows Installer XML」
? Windows Installer/WiX/Installshield メーリングリスト
http://www.freeml.com/msi
补遗
? javapackager
– 次の機能を持つJDK標準コマンド
? CSSファイルをバイナリ形式に変換
? JARアーカイブファイルを作成
? 再配布用パッケージを作成
? JARファイルを署名
– オプション説明
https://docs.oracle.com/javase/jp/8/docs/technotes/tools/windo
ws/javapackager.html
补遗
? javapackager
– 再配布パッケージ(MSI)作成時
? バージョン番号の指定可能形式
<A>.<B>.<C>
A: 0~255
B: 0~255
C: 0~65535
http://msdn.microsoft.com/en-us/library/aa370859%28v=VS.85%29.aspx
※ MSI(WiX Toolset)では実は4つの数値の組み合わせが指定可能で、バージョン番号の比
較(新旧)をチェックするときには最後(4つ目)の数値を無視する
补遗
Intel 64 and IA-32 Architectures Optimization Reference Manual より
同時8命令
(Port 0~7)
但し、Portにより実
行可能な命令が
異なる。
ALU(演算装置)4つ
LD/STA(メモリ読み
書き)4つ
第4世代Coreプロセッサ Haswell マイクロアーキテクチャ
补遗
JavaVM 32bitか64bitか、それが問題だ
32bit版の優位点
? ヒープサイズが小さいとき、メモリ使用
量が少なくメモリ参照が高速
? JITクライアントコンパイラのみを使用可
能
32bit版の欠点
? プロセス合計サイズが2GB以下に制限
? long型、double型で64bitレジスタを利用で
きず低速
書籍「Javaパフォーマンス」より
OSが32bitであれば、Java VMは32bitのみ。OSが64bitのときは、Java VMは32bitも64bit
も選択可能。
补遗
JITコンパイラの使用するスレッド数
書籍「Javaパフォーマンス」4.5.1より
32bit版は、クライアントコンパイラ(C1)とサーバーコンパイラ(C2)の選択が可能
64bit版は、階層コンパイラ(C1+C2)とサーバーコンパイラ(C2)の選択が可能(C1のみの
選択は不可能)
CPU数 C1 C2 C1+C2
1 1 1 2
2 1 1 2
4 1 2 3
8 1 2 3
16 2 6 8
-XX:CICompilerCount=N で合計スレッド数の指定可能
补遗
GCの使用するスレッド数
書籍「Javaパフォーマンス」5.2.4より
32bit版は、デフォルトでシリアルGC
64bit版は、デフォルトで並列(スループット)GC
CPU数 シリアルGC 並列GC 備考
1 1 1 8個までは、CPUごとに1つ
2 1 2
4 1 4
8 1 8
16 1 13 8 +
5(? ?8)
8
-XX:ParallelGCThreads=N で合計スレッド数の指定可能
补遗
初期ヒープサイズ
書籍「Javaパフォーマンス」5.2.3より
32bit版(クライアントVM)は、デフォルトで12MB
32bit版(サーバーVM)は、デフォルトで16MB
64bit版は、デフォルトで20.75MB
-XX:MetaspaceSize=N でメタスペース初期サイズの指定可能
物理メモリが192MB以下のマシン
?デフォルトで物理メモリの1/2
物理メモリが192MBより大きいマシン
?32bit版(サーバーVM)は、デフォルトで16MB
64bit版は、デフォルトで20.75MB
补遗
メタスペースの初期サイズ
書籍「Javaパフォーマンス」5.2.3より
32bit版(クライアントVM)は、デフォルトで12MB
32bit版(サーバーVM)は、デフォルトで16MB
64bit版は、デフォルトで20.75MB
-XX:MetaspaceSize=N でメタスペース初期サイズの指定可能
补遗
スレッドの使用するスタックサイズ
書籍「Javaパフォーマンス」9.4.1より
32bit版は、デフォルトで320KB
64bit版は、デフォルトで1MB
-Xss=N でスレッドあたりのスタックサイズの指定可能
メインスレッドのスタック
サイズは-Xssで指定した
ものとは別
补遗
? JavaVM 64bit上で実行する場合
– 32bit版JavaVMと近い設定をする
-Xms16m
-Xmx256m
-Xss320k
-XX:+UseSerialGC
-XX:CICompilerCount=2
JavaVM 32bit JavaVM 64bit JavaVM 64bit 調整
Private Bytes 66MB 304MB 107MB
Working Set Private 37MB 87MB 61MB
补遗
使用
(一部)
予約 空き使用
Virsutal Size
Private Bytes
Working Set -
Private
?1) 他のプロセスと共有可能なメ
モリはPrivate BytesとWorking Set -
Privateには含まれない
?1
? Windows OS上のプロセスのメモリ管理
?1
仮想アドレス空間
物理メモリ
?2) 物理メモリ上には実際にはリ
ニアに配置されることはない
?2
Private Bytesに着目
补遗
? Windowsのメモリ項目は計測ツールにより呼び方
がゆらぐ
項目 パフォーマンス
カウンタ
Process
Explorer
タスクマネー
ジャ
仮想サイズ Virtual Bytes Virtual Size
コミットサイズ Private Bytes Private Bytes コミットサイズ
ワーキングセット Working Set Working Set ワーキングセッ
ト(メモリ)
プライベートワーキン
グセット
Working Set -
Private
WS Private メモリ

More Related Content

What's hot (20)

PPT
Electrric arc furnace
Kerri Zhang
?
PDF
Bronz alasimlari
AHMETarda
?
PDF
Spark SQL principes et fonctions
MICHRAFY MUSTAFA
?
PPTX
JSW- Steel Plant -Operation process -TMT
Niraj Kumar
?
PDF
JSPL DRI#1 Training Report 2017
Abhishek Prajapati
?
PDF
Use case and integration of ClickHouse with Apache Superset & Dremio
Altinity Ltd
?
PPTX
Continuous casting of billets
Ayaz Akhtar
?
PDF
SAIL
abhi_vit
?
PDF
Migacion forms apex
Daniel Bozzolo
?
PDF
Solid Principles
NexThoughts Technologies
?
PPTX
Processing Large Data with Apache Spark -- HasGeek
Venkata Naga Ravi
?
PPTX
SUMMER TRAINING REPORT
NIKHIL AGRAWAL
?
PPTX
PRESENTATION on annealing pickling of steel
MohdAman22
?
PPTX
Ps ppt
Pratyush Sinha
?
PDF
Fsw optimization for dissimilar aluminium alloys (Presentation)
Dr. Bikram Jit Singh
?
DOCX
Training report on bokaro steel plant
Prashant Kumar
?
DOC
Steel Making: Lecture deoxidation
NED University of Engineering and Technology
?
PPTX
electric arc furnace
SanjitDhar
?
PPTX
Puddling furnace
Donella Long
?
PDF
Apache Spark Data Source V2 with Wenchen Fan and Gengliang Wang
Databricks
?
Electrric arc furnace
Kerri Zhang
?
Bronz alasimlari
AHMETarda
?
Spark SQL principes et fonctions
MICHRAFY MUSTAFA
?
JSW- Steel Plant -Operation process -TMT
Niraj Kumar
?
JSPL DRI#1 Training Report 2017
Abhishek Prajapati
?
Use case and integration of ClickHouse with Apache Superset & Dremio
Altinity Ltd
?
Continuous casting of billets
Ayaz Akhtar
?
SAIL
abhi_vit
?
Migacion forms apex
Daniel Bozzolo
?
Solid Principles
NexThoughts Technologies
?
Processing Large Data with Apache Spark -- HasGeek
Venkata Naga Ravi
?
SUMMER TRAINING REPORT
NIKHIL AGRAWAL
?
PRESENTATION on annealing pickling of steel
MohdAman22
?
Fsw optimization for dissimilar aluminium alloys (Presentation)
Dr. Bikram Jit Singh
?
Training report on bokaro steel plant
Prashant Kumar
?
Steel Making: Lecture deoxidation
NED University of Engineering and Technology
?
electric arc furnace
SanjitDhar
?
Puddling furnace
Donella Long
?
Apache Spark Data Source V2 with Wenchen Fan and Gengliang Wang
Databricks
?

Similar to Jjug ccc 2016 spring i 5 javaデスクトッププログラムを云々 (20)

PDF
Hello Java
Chihiro Ito
?
PDF
もろもろの AI ツールを Windows のローカル環境にインストールする手順
Hide Koba
?
PDF
はてなにおける継続的デプロイメントの現状と Docker の導入
Yu Nobuoka
?
PDF
XpagesDay 2014 [A-2] スタンダードクライアントで xpages を使ってみよう
Takeshi Yoshida
?
PPTX
Heap statsfx analyzer
Yasumasa Suenaga
?
PDF
毎日が憧れの新筑、反復可能なデリバリーによる常时新筑システム
Tomohiro Ohtake
?
PDF
VM ロールで仮想デスクトップ環を作ってみよう
Masayuki Ozawa
?
PDF
自宅て?出来る!ケ?ームサーハ?の作り方
光晶 上原
?
PPTX
Power shellmemo
ytanno
?
PPTX
Windows8活用研究2 2013-01-26-公開用
Tomokazu Kizawa
?
PDF
Play jjug2012spring
Takafumi Ikeda
?
PDF
0621 ndk game
cat kaotaro
?
PDF
Cell/B.E. プログラミング事始め
You&I
?
PDF
はじめての Azure 開発
Yoshitaka Seo
?
PDF
Code igniterでテスト駆動開発 資料作成中
Takako Miyagawa
?
PDF
闯别苍办颈苍蝉+笔濒补测!で気軽に颁滨
Takafumi Ikeda
?
PDF
闯别苍办颈苍蝉実践入门目次チラ见せしちゃいます
Masanori Satoh
?
PDF
Visual studio de debug
Kazushi Kamegawa
?
PDF
プログラミング生放送第7回 比べてみようPaaSクラウド~Azure VS GAE~
normalian
?
PDF
Play framework 2.0のおすすめと1.2からのアップグレード
Kazuhiro Hara
?
Hello Java
Chihiro Ito
?
もろもろの AI ツールを Windows のローカル環境にインストールする手順
Hide Koba
?
はてなにおける継続的デプロイメントの現状と Docker の導入
Yu Nobuoka
?
XpagesDay 2014 [A-2] スタンダードクライアントで xpages を使ってみよう
Takeshi Yoshida
?
Heap statsfx analyzer
Yasumasa Suenaga
?
毎日が憧れの新筑、反復可能なデリバリーによる常时新筑システム
Tomohiro Ohtake
?
VM ロールで仮想デスクトップ環を作ってみよう
Masayuki Ozawa
?
自宅て?出来る!ケ?ームサーハ?の作り方
光晶 上原
?
Power shellmemo
ytanno
?
Windows8活用研究2 2013-01-26-公開用
Tomokazu Kizawa
?
Play jjug2012spring
Takafumi Ikeda
?
0621 ndk game
cat kaotaro
?
Cell/B.E. プログラミング事始め
You&I
?
はじめての Azure 開発
Yoshitaka Seo
?
Code igniterでテスト駆動開発 資料作成中
Takako Miyagawa
?
闯别苍办颈苍蝉+笔濒补测!で気軽に颁滨
Takafumi Ikeda
?
闯别苍办颈苍蝉実践入门目次チラ见せしちゃいます
Masanori Satoh
?
Visual studio de debug
Kazushi Kamegawa
?
プログラミング生放送第7回 比べてみようPaaSクラウド~Azure VS GAE~
normalian
?
Play framework 2.0のおすすめと1.2からのアップグレード
Kazuhiro Hara
?
Ad

More from torutk (10)

PPTX
LL2021 Java update
torutk
?
PDF
Jjugccc2017spring m6 javafx
torutk
?
PPTX
JJUG CCC 2016 Fall: World is not a square, rendering world coastline map with...
torutk
?
PPTX
LLoT2016 Java Update
torutk
?
PPTX
Java FXグラフィックスとアニメーション入門(JJUG CCC 2015 Spring G-7)
torutk
?
PDF
Java one 2013 sf 報告会lt
torutk
?
PPTX
実行可能闯补惫补贵齿アプリケーション闯础搁(発表直前版)
torutk
?
PPTX
Jjug night seminar201208_lt_cxxからjvm起動
torutk
?
PPT
2012年箩补惫补メモリリーク
torutk
?
PPT
2011年javaの旅
torutk
?
LL2021 Java update
torutk
?
Jjugccc2017spring m6 javafx
torutk
?
JJUG CCC 2016 Fall: World is not a square, rendering world coastline map with...
torutk
?
LLoT2016 Java Update
torutk
?
Java FXグラフィックスとアニメーション入門(JJUG CCC 2015 Spring G-7)
torutk
?
Java one 2013 sf 報告会lt
torutk
?
実行可能闯补惫补贵齿アプリケーション闯础搁(発表直前版)
torutk
?
Jjug night seminar201208_lt_cxxからjvm起動
torutk
?
2012年箩补惫补メモリリーク
torutk
?
2011年javaの旅
torutk
?
Ad

Jjug ccc 2016 spring i 5 javaデスクトッププログラムを云々