code-java-api-discoverylisted
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