Enviar búsqueda
Cargar
Java9 and Project Jigsaw
•
8 recomendaciones
•
11,364 vistas
T
takezoe
Seguir
#渋谷java
Leer menos
Leer más
Software
Denunciar
Compartir
Denunciar
Compartir
1 de 20
Descargar ahora
Descargar para leer sin conexión
Recomendados
今年はJava進化の年!今知っておくべき新しいJava
今年はJava進化の年!今知っておくべき新しいJava
Takashi Ito
20150131 ChugokuDB-Shimane-MySQL
20150131 ChugokuDB-Shimane-MySQL
Ryusuke Kajiyama
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQL
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQL
Ryusuke Kajiyama
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
PE-BANK
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
Chihiro Ito
第九回中国地方DB勉強会 in 米子 MySQL 5.7+
第九回中国地方DB勉強会 in 米子 MySQL 5.7+
Ryusuke Kajiyama
Oracle Database (CDB) on Docker を動かしてみる
Oracle Database (CDB) on Docker を動かしてみる
オラクルエンジニア通信
20150920 中国地方db勉強会
20150920 中国地方db勉強会
yoyamasaki
Recomendados
今年はJava進化の年!今知っておくべき新しいJava
今年はJava進化の年!今知っておくべき新しいJava
Takashi Ito
20150131 ChugokuDB-Shimane-MySQL
20150131 ChugokuDB-Shimane-MySQL
Ryusuke Kajiyama
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQL
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQL
Ryusuke Kajiyama
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
PE-BANK
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
Chihiro Ito
第九回中国地方DB勉強会 in 米子 MySQL 5.7+
第九回中国地方DB勉強会 in 米子 MySQL 5.7+
Ryusuke Kajiyama
Oracle Database (CDB) on Docker を動かしてみる
Oracle Database (CDB) on Docker を動かしてみる
オラクルエンジニア通信
20150920 中国地方db勉強会
20150920 中国地方db勉強会
yoyamasaki
States of Dolphin - MySQL最新技術情報2013秋 -
States of Dolphin - MySQL最新技術情報2013秋 -
yoyamasaki
20140518 JJUG MySQL Clsuter as NoSQL
20140518 JJUG MySQL Clsuter as NoSQL
Ryusuke Kajiyama
Oracle GoldenGate Cloud Service(GGCS)概要
Oracle GoldenGate Cloud Service(GGCS)概要
オラクルエンジニア通信
Oracle RAC on Docker
Oracle RAC on Docker
Ohshima Masaki
Windows環境でのMySQL
Windows環境でのMySQL
yoyamasaki
Oracle jdk 20190827 - 今、あらためてOracle提供のJDKを語る
Oracle jdk 20190827 - 今、あらためてOracle提供のJDKを語る
オラクルエンジニア通信
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...
Funada Yasunobu
MySQL最新情報 ※2015年9月5日「第1回 関西DB勉強会」での発表資料
MySQL最新情報 ※2015年9月5日「第1回 関西DB勉強会」での発表資料
yoyamasaki
Java in the World of Container by David Buck
Java in the World of Container by David Buck
オラクルエンジニア通信
[db tech showcase Tokyo 2015] C15:DevOps MySQL in カカクコム~ OSSによる可用性担保とリアルタイムパフ...
[db tech showcase Tokyo 2015] C15:DevOps MySQL in カカクコム~ OSSによる可用性担保とリアルタイムパフ...
Insight Technology, Inc.
Rakuten New MySQL Backup System With Xtrabackup
Rakuten New MySQL Backup System With Xtrabackup
Rakuten Group, Inc.
これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?
Takahiro YAMADA
Oracle Cloud MySQL Service
Oracle Cloud MySQL Service
Shinya Sugiyama
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
Takahiro YAMADA
SQL Server エンジニア のための コンテナ入門(k8s編)
SQL Server エンジニア のための コンテナ入門(k8s編)
Tomoyuki Oota
JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方
Takahiro YAMADA
[D37]MySQLの真のイノベーションはこれだ!MySQL 5.7と「実験室」 by Ryusuke Kajiyama
[D37]MySQLの真のイノベーションはこれだ!MySQL 5.7と「実験室」 by Ryusuke Kajiyama
Insight Technology, Inc.
20170624 interact2017 open shift on azure
20170624 interact2017 open shift on azure
Takayoshi Tanaka
第10回しゃちほこオラクル倶楽部
第10回しゃちほこオラクル倶楽部
オラクルエンジニア通信
[Modern Cloud Day Tokyo 2019] Oracle CloudでDevOps!?Javaアプリケーションのモダン開発を支援するOra...
[Modern Cloud Day Tokyo 2019] Oracle CloudでDevOps!?Javaアプリケーションのモダン開発を支援するOra...
オラクルエンジニア通信
10のJava9で変わるJava8の嫌なとこ!
10のJava9で変わるJava8の嫌なとこ!
bitter_fox
JavaOne 2016 Java SE Feedback #jjug #j1jp
JavaOne 2016 Java SE Feedback #jjug #j1jp
Yuji Kubota
Más contenido relacionado
La actualidad más candente
States of Dolphin - MySQL最新技術情報2013秋 -
States of Dolphin - MySQL最新技術情報2013秋 -
yoyamasaki
20140518 JJUG MySQL Clsuter as NoSQL
20140518 JJUG MySQL Clsuter as NoSQL
Ryusuke Kajiyama
Oracle GoldenGate Cloud Service(GGCS)概要
Oracle GoldenGate Cloud Service(GGCS)概要
オラクルエンジニア通信
Oracle RAC on Docker
Oracle RAC on Docker
Ohshima Masaki
Windows環境でのMySQL
Windows環境でのMySQL
yoyamasaki
Oracle jdk 20190827 - 今、あらためてOracle提供のJDKを語る
Oracle jdk 20190827 - 今、あらためてOracle提供のJDKを語る
オラクルエンジニア通信
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...
Funada Yasunobu
MySQL最新情報 ※2015年9月5日「第1回 関西DB勉強会」での発表資料
MySQL最新情報 ※2015年9月5日「第1回 関西DB勉強会」での発表資料
yoyamasaki
Java in the World of Container by David Buck
Java in the World of Container by David Buck
オラクルエンジニア通信
[db tech showcase Tokyo 2015] C15:DevOps MySQL in カカクコム~ OSSによる可用性担保とリアルタイムパフ...
[db tech showcase Tokyo 2015] C15:DevOps MySQL in カカクコム~ OSSによる可用性担保とリアルタイムパフ...
Insight Technology, Inc.
Rakuten New MySQL Backup System With Xtrabackup
Rakuten New MySQL Backup System With Xtrabackup
Rakuten Group, Inc.
これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?
Takahiro YAMADA
Oracle Cloud MySQL Service
Oracle Cloud MySQL Service
Shinya Sugiyama
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
Takahiro YAMADA
SQL Server エンジニア のための コンテナ入門(k8s編)
SQL Server エンジニア のための コンテナ入門(k8s編)
Tomoyuki Oota
JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方
Takahiro YAMADA
[D37]MySQLの真のイノベーションはこれだ!MySQL 5.7と「実験室」 by Ryusuke Kajiyama
[D37]MySQLの真のイノベーションはこれだ!MySQL 5.7と「実験室」 by Ryusuke Kajiyama
Insight Technology, Inc.
20170624 interact2017 open shift on azure
20170624 interact2017 open shift on azure
Takayoshi Tanaka
第10回しゃちほこオラクル倶楽部
第10回しゃちほこオラクル倶楽部
オラクルエンジニア通信
[Modern Cloud Day Tokyo 2019] Oracle CloudでDevOps!?Javaアプリケーションのモダン開発を支援するOra...
[Modern Cloud Day Tokyo 2019] Oracle CloudでDevOps!?Javaアプリケーションのモダン開発を支援するOra...
オラクルエンジニア通信
La actualidad más candente
(20)
States of Dolphin - MySQL最新技術情報2013秋 -
States of Dolphin - MySQL最新技術情報2013秋 -
20140518 JJUG MySQL Clsuter as NoSQL
20140518 JJUG MySQL Clsuter as NoSQL
Oracle GoldenGate Cloud Service(GGCS)概要
Oracle GoldenGate Cloud Service(GGCS)概要
Oracle RAC on Docker
Oracle RAC on Docker
Windows環境でのMySQL
Windows環境でのMySQL
Oracle jdk 20190827 - 今、あらためてOracle提供のJDKを語る
Oracle jdk 20190827 - 今、あらためてOracle提供のJDKを語る
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...
MySQL最新情報 ※2015年9月5日「第1回 関西DB勉強会」での発表資料
MySQL最新情報 ※2015年9月5日「第1回 関西DB勉強会」での発表資料
Java in the World of Container by David Buck
Java in the World of Container by David Buck
[db tech showcase Tokyo 2015] C15:DevOps MySQL in カカクコム~ OSSによる可用性担保とリアルタイムパフ...
[db tech showcase Tokyo 2015] C15:DevOps MySQL in カカクコム~ OSSによる可用性担保とリアルタイムパフ...
Rakuten New MySQL Backup System With Xtrabackup
Rakuten New MySQL Backup System With Xtrabackup
これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?
Oracle Cloud MySQL Service
Oracle Cloud MySQL Service
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
SQL Server エンジニア のための コンテナ入門(k8s編)
SQL Server エンジニア のための コンテナ入門(k8s編)
JDKの選択肢とサーバーサイドでの選び方
JDKの選択肢とサーバーサイドでの選び方
[D37]MySQLの真のイノベーションはこれだ!MySQL 5.7と「実験室」 by Ryusuke Kajiyama
[D37]MySQLの真のイノベーションはこれだ!MySQL 5.7と「実験室」 by Ryusuke Kajiyama
20170624 interact2017 open shift on azure
20170624 interact2017 open shift on azure
第10回しゃちほこオラクル倶楽部
第10回しゃちほこオラクル倶楽部
[Modern Cloud Day Tokyo 2019] Oracle CloudでDevOps!?Javaアプリケーションのモダン開発を支援するOra...
[Modern Cloud Day Tokyo 2019] Oracle CloudでDevOps!?Javaアプリケーションのモダン開発を支援するOra...
Destacado
10のJava9で変わるJava8の嫌なとこ!
10のJava9で変わるJava8の嫌なとこ!
bitter_fox
JavaOne 2016 Java SE Feedback #jjug #j1jp
JavaOne 2016 Java SE Feedback #jjug #j1jp
Yuji Kubota
Java9新機能概要
Java9新機能概要
HonMarkHunt
JavaOne 2016総括 #jjug
JavaOne 2016総括 #jjug
Yusuke Suzuki
Java SE 9の紹介: モジュール・システムを中心に
Java SE 9の紹介: モジュール・システムを中心に
Taku Miyakawa
Spring Bootの本当の理解ポイント #jjug
Spring Bootの本当の理解ポイント #jjug
Masatoshi Tada
Destacado
(6)
10のJava9で変わるJava8の嫌なとこ!
10のJava9で変わるJava8の嫌なとこ!
JavaOne 2016 Java SE Feedback #jjug #j1jp
JavaOne 2016 Java SE Feedback #jjug #j1jp
Java9新機能概要
Java9新機能概要
JavaOne 2016総括 #jjug
JavaOne 2016総括 #jjug
Java SE 9の紹介: モジュール・システムを中心に
Java SE 9の紹介: モジュール・システムを中心に
Spring Bootの本当の理解ポイント #jjug
Spring Bootの本当の理解ポイント #jjug
Similar a Java9 and Project Jigsaw
Spring I/O 2016 Spring 5について
Spring I/O 2016 Spring 5について
Alisa Sasaki
JavaとScalaとGroovyと
JavaとScalaとGroovyと
irof N
Gws 20120521 gradle
Gws 20120521 gradle
Nobuhiro Sue
Webpackにトライ 基本編
Webpackにトライ 基本編
シオリ ショウノ
gradle2.4のルールベースモデルコンフィギュレーション
gradle2.4のルールベースモデルコンフィギュレーション
Shinya Mochida
Couch Db勉強会0623 by yssk22
Couch Db勉強会0623 by yssk22
Yohei Sasaki
JBoss AS 7 / EAP 6 modules and class loading
JBoss AS 7 / EAP 6 modules and class loading
nekop
Groovy base gradle_20130309
Groovy base gradle_20130309
Nobuhiro Sue
いるけどないからつくってみたよ高速モバイルプッシュ配信くん #cmdevio
いるけどないからつくってみたよ高速モバイルプッシュ配信くん #cmdevio
fd0
Module classloading
Module classloading
nekop
作って分かるKnockoutJS@ALM11月
作って分かるKnockoutJS@ALM11月
Takuya Ueda
Grailsのススメ(仮)
Grailsのススメ(仮)
Tsuyoshi Yamamoto
Gradleどうでしょう
Gradleどうでしょう
Takuma Watabiki
Introduction to GraalVM and Native Image
Introduction to GraalVM and Native Image
Koichi Sakata
明日から使えるgradle
明日から使えるgradle
kimukou_26 Kimukou
WildFly Swarmではじめる「パーツとしてのJavaEE」
WildFly Swarmではじめる「パーツとしてのJavaEE」
Hiroaki NAKADA
コンテナ環境でJavaイメージを小さくする方法!
コンテナ環境でJavaイメージを小さくする方法!
オラクルエンジニア通信
並列クエリを実行するPostgreSQLのアーキテクチャ
並列クエリを実行するPostgreSQLのアーキテクチャ
Kohei KaiGai
Java-Virtual-Thread-LT.pdf
Java-Virtual-Thread-LT.pdf
Yoshio Terada
自作ゲームをWebpack対応させてみた
自作ゲームをWebpack対応させてみた
Yuusuke Takeuchi
Similar a Java9 and Project Jigsaw
(20)
Spring I/O 2016 Spring 5について
Spring I/O 2016 Spring 5について
JavaとScalaとGroovyと
JavaとScalaとGroovyと
Gws 20120521 gradle
Gws 20120521 gradle
Webpackにトライ 基本編
Webpackにトライ 基本編
gradle2.4のルールベースモデルコンフィギュレーション
gradle2.4のルールベースモデルコンフィギュレーション
Couch Db勉強会0623 by yssk22
Couch Db勉強会0623 by yssk22
JBoss AS 7 / EAP 6 modules and class loading
JBoss AS 7 / EAP 6 modules and class loading
Groovy base gradle_20130309
Groovy base gradle_20130309
いるけどないからつくってみたよ高速モバイルプッシュ配信くん #cmdevio
いるけどないからつくってみたよ高速モバイルプッシュ配信くん #cmdevio
Module classloading
Module classloading
作って分かるKnockoutJS@ALM11月
作って分かるKnockoutJS@ALM11月
Grailsのススメ(仮)
Grailsのススメ(仮)
Gradleどうでしょう
Gradleどうでしょう
Introduction to GraalVM and Native Image
Introduction to GraalVM and Native Image
明日から使えるgradle
明日から使えるgradle
WildFly Swarmではじめる「パーツとしてのJavaEE」
WildFly Swarmではじめる「パーツとしてのJavaEE」
コンテナ環境でJavaイメージを小さくする方法!
コンテナ環境でJavaイメージを小さくする方法!
並列クエリを実行するPostgreSQLのアーキテクチャ
並列クエリを実行するPostgreSQLのアーキテクチャ
Java-Virtual-Thread-LT.pdf
Java-Virtual-Thread-LT.pdf
自作ゲームをWebpack対応させてみた
自作ゲームをWebpack対応させてみた
Más de takezoe
Journey of Migrating Millions of Queries on The Cloud
Journey of Migrating Millions of Queries on The Cloud
takezoe
GitBucket: Open source self-hosting Git server built by Scala
GitBucket: Open source self-hosting Git server built by Scala
takezoe
Testing Distributed Query Engine as a Service
Testing Distributed Query Engine as a Service
takezoe
Revisit Dependency Injection in scala
Revisit Dependency Injection in scala
takezoe
How to keep maintainability of long life Scala applications
How to keep maintainability of long life Scala applications
takezoe
頑張りすぎないScala
頑張りすぎないScala
takezoe
GitBucket: Git Centric Software Development Platform by Scala
GitBucket: Git Centric Software Development Platform by Scala
takezoe
Non-Functional Programming in Scala
Non-Functional Programming in Scala
takezoe
Scala警察のすすめ
Scala警察のすすめ
takezoe
Scala製機械学習サーバ「Apache PredictionIO」
Scala製機械学習サーバ「Apache PredictionIO」
takezoe
The best of AltJava is Xtend
The best of AltJava is Xtend
takezoe
Scala Warrior and type-safe front-end development with Scala.js
Scala Warrior and type-safe front-end development with Scala.js
takezoe
Tracing Microservices with Zipkin
Tracing Microservices with Zipkin
takezoe
Type-safe front-end development with Scala
Type-safe front-end development with Scala
takezoe
Scala Frameworks for Web Application 2016
Scala Frameworks for Web Application 2016
takezoe
Macro in Scala
Macro in Scala
takezoe
Reactive database access with Slick3
Reactive database access with Slick3
takezoe
markedj: The best of markdown processor on JVM
markedj: The best of markdown processor on JVM
takezoe
ネタじゃないScala.js
ネタじゃないScala.js
takezoe
Excel方眼紙を支えるJava技術 2015
Excel方眼紙を支えるJava技術 2015
takezoe
Más de takezoe
(20)
Journey of Migrating Millions of Queries on The Cloud
Journey of Migrating Millions of Queries on The Cloud
GitBucket: Open source self-hosting Git server built by Scala
GitBucket: Open source self-hosting Git server built by Scala
Testing Distributed Query Engine as a Service
Testing Distributed Query Engine as a Service
Revisit Dependency Injection in scala
Revisit Dependency Injection in scala
How to keep maintainability of long life Scala applications
How to keep maintainability of long life Scala applications
頑張りすぎないScala
頑張りすぎないScala
GitBucket: Git Centric Software Development Platform by Scala
GitBucket: Git Centric Software Development Platform by Scala
Non-Functional Programming in Scala
Non-Functional Programming in Scala
Scala警察のすすめ
Scala警察のすすめ
Scala製機械学習サーバ「Apache PredictionIO」
Scala製機械学習サーバ「Apache PredictionIO」
The best of AltJava is Xtend
The best of AltJava is Xtend
Scala Warrior and type-safe front-end development with Scala.js
Scala Warrior and type-safe front-end development with Scala.js
Tracing Microservices with Zipkin
Tracing Microservices with Zipkin
Type-safe front-end development with Scala
Type-safe front-end development with Scala
Scala Frameworks for Web Application 2016
Scala Frameworks for Web Application 2016
Macro in Scala
Macro in Scala
Reactive database access with Slick3
Reactive database access with Slick3
markedj: The best of markdown processor on JVM
markedj: The best of markdown processor on JVM
ネタじゃないScala.js
ネタじゃないScala.js
Excel方眼紙を支えるJava技術 2015
Excel方眼紙を支えるJava技術 2015
Java9 and Project Jigsaw
1.
Java9 and Project
Jigsaw #渋谷java @takezoen BizReach, Inc
2.
Java9 ● 2017年3月リリース予定 ● 目玉機能:Project
Jigsaw
3.
Project Jigsawとは? ● モジュール管理のための仕組み ○
複雑化しがちな依存関係、同一ライブラリのバージョン衝 突といったクラスパス問題(Jar Hell)を解決 ● JDK自体もモジュール化される ○ というか元々JDKのモジュール化が目的だった ○ 必要なモジュールだけでJDKのサブセットを構成可能 ○ 組み込み機器等での利用が想定される
4.
従来との違い ● 従来のクラスパスを置き換える ○ 互換性のためクラスパスとの併用も可能 ○
Jigsawのモジュールシステムからクラスをロードできない 場合はクラスパスから読み込む ● Mavenの依存ライブラリ管理機能との違い ○ 依存関係だけでなく可視性も定義できる ○ Mavenはビルド時のモジュールシステムだがJigsawは実 行時もサポートする
5.
延期に次ぐ延期 ● 2008年 ○ Project
Jigsaw開始(Sun時代) ● 2010年 ○ Java7のリリースを優先するためLambdaと共にJava8に 先送り ● 2012年 ○ Java8のリリースを優先するためJava9に先送り ● 2015年 ○ Jigsawを入れるためにJava9のリリースを半年延期
6.
モジュールの例 Appモジュール Utilモジュール
7.
モジュールの例 クラスパスルートにmodule- info.javaを作成
8.
module-info.javaの内容 // Utilモジュール module Util
{ exports sample.util; } // Appモジュール module App { requires Util; } このモジュールにはUtilモジュールが必要 であることを宣言 sample.utilパッケージを他のモジュール から使えるようにエクスポート
9.
# マルチモジュールプロジェクトのコンパイル javac -d
build -modulesourcepath src $(find src -name "*. java") コンパイル
10.
jarの作成と実行 # Jigsaw対応のjarを作成 jar --create
--file mlib/Util@1.0.jar --module-version 1.0 - C build/Util . # Mainクラスを指定 jar --create --file mlib/App@1.0.jar --module-version 1.0 -- main-class sample.app.Main -C build/App . # 実行 java -mp mlib -m App
11.
パッケージング # パッケージング jlink --modulepath
$JAVA_HOME/jmods:mlib --addmods App -- output app 実行ファイル
12.
module-info.javaに書ける内容 ● exports ○ 他のモジュールに公開するパッケージを宣言する ●
requires ○ このモジュールに必要なモジュールを宣言する ● uses、provides ○ ServiceLoaderでロード可能なサービスを宣言する
13.
exports ● 他のモジュールに公開するパッケージを指定 ● 特定のモジュールにのみエクスポートすることも 可能 module
Util { exports sample.util; exports sample.util to App; }
14.
requires ● 必要なモジュールを宣言 ● publicをつけることで再エクスポート可能 module
App { requires Storage; requires public Util; }
15.
uses, provides ● ServiceLoaderでロード可能なサービスを提供 する //
こんな感じでロードできるやつ ServiceLoader<Storage> loader = ServiceLoader.load(Storage.class); Iterator<Storage> ite = loader.iterator();
16.
uses, provides module Storage
{ exports sample.storage; uses sample.storage.Storage } module S3Storage { requires Storage; provides sample.storage.Storage with sample.storage.s3.S3Storage; } Storageの実装を要求 Storageの実装として S3Storageを提供
17.
JDKのパッケージもモジュール化されている ● java.base ● java.logging ●
java.xml ● java.sql ● java.desktop ● など
18.
依存関係を見てみる $ jdeps -module
mlib/Util@1.0.jar Util@1.0.jar -> java.base Util (Util@1.0.jar) -> sample.util Util@1.0.jar sample.util (Util@1.0.jar) -> java.io java.base -> java.lang java.base -> java.util java.base
19.
注意事項 ● エクステンションディレクトリが廃止されるため、そ れを利用したハックができなくなる ● ビルドツール、IDEやミドルウェアなど周辺環境の 対応も必要
20.
試してみよう ● JDK9 Early
Access with Project Jigsaw ○ https://jdk9.java.net/jigsaw/ ● NetBeansのJigsawサポート ○ http://wiki.netbeans.org/JigsawSupport
Descargar ahora