Jdeps tool ใช้สำหรับ วิเคราะห์ dependencies ของคลาส คำสั่ง jdeps -jdkinternals jararchive.jar จะพิมพ์รายการคลาสทั้งหมดที่ใช้ Java internal API Jdeps ให้รายละเอียด dependencies ส่วน Jdeprscan เป็น tool อีกตัวที่ใช้ร่วมกับ flag --for-removal โดยเฉพาะ Tool นี้แสดงการใช้ deprecated API ของ jar archive ที่กำหนด แสดงเฉพาะ deprecated uses ของ JDK methods ไม่สามารถใช้ตรวจสอบ deprecation ใน third party jar ได้
Jdeps Tool
jdeps- Class dependency analyzer สำหรับ package-level และ class-level dependenciesjdeps class_file- แสดง package-level dependencies ของ class filejdeps -verbose- แสดง class-level dependenciesjdeps jar_file- แสดง package-level dependencies ของ jar filejdeps --inverse --require module_name- แสดง reverse dependencies ของ java module
ตัวเลือกสำคัญของ jdeps (จาก jdeps --help)
Usage: jdeps
can be a pathname to a .class file, a directory, a JAR file.
Options:
-dotoutput Destination directory for DOT file output
-s, -summary Print dependency summary only
-v, -verbose Print all class level dependencies
-verbose:package Print package-level dependencies
-verbose:class Print class-level dependencies
-apionly, --api-only Restrict analysis to APIs only
-jdkinternals, --jdk-internals Find dependencies on JDK internal APIs
--check Analyze module dependencies
--generate-module-info Generate module-info.java
--generate-open-module Generate module-info.java for open modules
--list-deps List dependencies and JDK internal API usage
--list-reduced-deps Same as --list-deps without implied reads
-cp, -classpath, --class-path Specify class path
--module-path Specify module path
--upgrade-module-path Specify upgrade module path
--system Specify alternate system module path
--add-modules Add modules to root set
-m, --module Specify root module
--multi-release Version for multi-release jars
-p, --package Find dependencies matching package
-e, --regex Find dependencies matching pattern
--require Find dependencies matching module
-f, --filter Filter dependencies
-filter:package Filter within same package (default)
-filter:archive Filter within same archive
-filter:module Filter within same module
-filter:none No filtering
-include Restrict analysis to matching classes
-P, -profile Show profile containing a package
-R, -recursive Recursively traverse runtime dependencies
-I, --inverse Analyze inverse dependencies
--compile-time Compile-time view of transitive dependencies
-q, -quiet Quiet mode
-version, --version Version information
jdeprscan Tool
jdeprscan- Java Deprecated API Scanner สำหรับสแกน deprecated API elementsjdeprscan class_file- สแกน deprecated APIs ของ class filejdeprscan jar_file- สแกน deprecated APIs ของ jar filejdeprscan --release X- สแกน deprecated APIs ของ JDK release เฉพาะjdeprscan --list --release X- แสดง deprecated APIs ทั้งหมดของ release เฉพาะ
ตัวเลือกของ jdeprscan (จาก jdeprscan --help)
Usage: jdeprscan [options] {dir|jar|class} ...
options:
--class-path PATH Search path for dependent classes
--for-removal Limit to APIs deprecated for removal
--full-version Print full version string
-h, --help Print help message
-l, --list List deprecated APIs (no scanning)
--release 6|7|8|9 Java SE release for deprecated API set
-v, --verbose Verbose output
--version Print abbreviated version
ตารางเปรียบเทียบ
| คุณสมบัติ | Jdeps | Jdeprscan |
|---|---|---|
| วัตถุประสงค์ | วิเคราะห์ class dependencies | สแกน deprecated API usage |
| ขอบเขต | ทุกประเภท dependencies | เฉพาะ JDK deprecated APIs |
| Third-party JAR | รองรับ | ไม่รองรับ |
| Module analysis | รองรับ (--check, --generate-module-info) | ไม่รองรับ |
| Output format | Text, DOT, module-info.java | Text list |
เมื่อไหร่ควรใช้ tool ไหน
- jdeps: ต้องการวิเคราะห์ dependencies, migrate ไป modules, หา internal API usage
- jdeprscan: ต้องการหา deprecated API ที่ใช้ในโค้ด ก่อน upgrade Java version