← ClaudeAtlas

code-java-api-discoverylisted

Discover Java API signatures from compiled JARs using javap instead of guessing or relying on incomplete documentation. Use when encountering unknown methods, pagination patterns, union types, or compilation errors from incorrect API assumptions.
tstapler/dotfiles · ★ 8 · Data & Documents · score 59
Install: claude install-skill tstapler/dotfiles
# Java API Discovery Efficiently discover actual API signatures from compiled JARs using `javap`. This approach eliminates guessing and trial-and-error by examining the compiled bytecode directly. ## When to Use This Skill - Encountering compilation errors from incorrect method assumptions - Working with unfamiliar Java SDKs or libraries - Need to understand pagination patterns (offset vs cursor) - Dealing with union types or polymorphic responses - Verifying field existence before writing code - Documentation is incomplete, outdated, or ambiguous ## Core Workflow ### 1. Find the JAR ```bash # Gradle projects find ~/.gradle/caches -name "*library-name*.jar" -type f 2>/dev/null | head -5 # Maven projects find ~/.m2/repository -name "*library-name*.jar" -type f 2>/dev/null | head -5 # Project libs find . -name "*.jar" -type f 2>/dev/null ``` ### 2. List Package Contents ```bash # List all classes in a package jar tf /path/to/library.jar | grep "com/example/package" | head -20 # Find specific class jar tf /path/to/library.jar | grep -i "ClassName" ``` ### 3. Examine Class API ```bash # Show all public methods javap -cp /path/to/library.jar com.example.ClassName # Filter for getters javap -cp /path/to/library.jar com.example.ClassName | grep -E "public.*get" # Filter for setters/builders javap -cp /path/to/library.jar com.example.ClassName | grep -E "public.*(set|with|build)" # Show full signatures including generics javap -s -cp /path/to/library.jar com.example.C