Java JDK and debuggers, optimized for JVM development, token efficiency, with agents for tasking
2.6K
Cost savings: use the tweakcc reduced system prompt + specialized Java tools for the best results. A default Claude Code prompt injects 30K+ characters per turn — that's $90/MTurn on Sonnet and $150 on Opus for tokens you never read. The tweakcc thinkingVerbs and ablated prompts trim this to ~10K, saving up to 90% on cached reads and ~$4.50/hour in input for a coding session at 100 requests/hour.
Drop a Java project into a container and ask Claude to build, lint, test, and ship it. This image combines Claude Code (abliterated) with JDK, Spring Boot, Maven, Gradle, Google Java Format, SpotBugs, PMD, and Checkstyle — a complete Java development workstation with pre-loaded linting configs and a built-in Spring Boot CLI.
This container is a focused Java development environment. Mount whatever Java projects, Spring Boot apps, or Gradle/Maven modules you want to work on, start the container, and Claude automatically gets:
No configuration, no setup. Give it a Java project and ask Claude to build, lint, run Spring Boot, and ship.
# First, navigate to your project directory.
# cd $HOME/git/my-project
# Build a Java project with Claude and Google Java Format working together
docker run -u $(id -u):$(id -g) -e ANTHROPIC_API_KEY=sk-... \
-v "$PWD:/workdir:rw" \
t2fn/java-claude-abliterated:latest
# Or with podman:
podman run -u $(id -u):$(id -g) --userns=keep-id \
-e ANTHROPIC_API_KEY=sk-... \
-v "$PWD:/workdir:rw" \
t2fn/java-claude-abliterated:latest
# Then send a prompt:
# "Google Java Format my project, run checkstyle, and build with Maven"
# Spring Boot project:
docker run -u $(id -u):$(id -g) -e ANTHROPIC_API_KEY=sk-... \
-v "$PWD:/workdir:rw" \
t2fn/java-claude-abliterated:latest
# Then: "spring init --build=maven --dependencies=web,actuator myapp"
# Then: "spring run myapp"
# Or with a local Ollama model:
docker run -u $(id -u):$(id -g) -e OLLAMA_MODEL=gemma4:31b \
-e OLLAMA_HOST=10.12.2.4 \
-e ANTHROPIC_API_KEY=sk-... \
-v "$PWD:/workdir:rw" \
t2fn/java-claude-abliterated:latest
# Or with podman:
podman run -u $(id -u):$(id -g) --userns=keep-id \
-e OLLAMA_MODEL=gemma4:31b \
-e OLLAMA_HOST=10.12.2.4 \
-e ANTHROPIC_API_KEY=sk-... \
-v "$PWD:/workdir:rw" \
t2fn/java-claude-abliterated:latest
Claude connects to the JDT Language Server, calls google-java-format and checkstyle, traces Spring Boot dependencies, and returns a natural-language report — all from one prompt.
Building Java applications typically means installing the JDK, setting up JAVA_HOME, installing Maven/Gradle, and configuring multiple linting tools. This container bundles it all and makes it accessible to Claude via a single -p prompt.
| Without this container | With java-claude-abliterated |
|---|---|
| Install JDK, Maven, Gradle, Spring Boot CLI | docker run — everything is ready |
| Write Java code, run google-java-format, checkstyle, SpotBugs manually | Claude calls google-java-format -i and gets actionable fixes directly |
| Manually manage pom.xml/build.gradle, Spring Boot dependencies | Ask Claude — it knows the Spring ecosystem and starters |
| One tool per terminal session | Spring Boot CLI, Maven, and Gradle all available |
| Manual linting configuration | Pre-loaded checkstyle.xml, google-java-format.jar, SpotBugs, PMD |
The container works with any Java project under /workdir:
| Component | Source | Description |
|---|---|---|
| JDK | openjdk.java.net | Core toolchain (java, javac, jdb, jar, jlink) |
| Claude Code | claude-abliterated/ | Abliterated CLI with tweakcc, 200+ skills, rules |
| Maven | apache.org | Build tool & dependency manager (pom.xml lifecycle) |
| Gradle | gradle.org | Build tool & dependency manager (incremental builds) |
| Spring Boot | spring.io | Spring Boot CLI (init, run, jar, war, status) |
| Google Java Format | github.com/google | Auto-formatter (Google style, zero-config) |
| Checkstyle | checkstyle.org | Code style linter (naming, imports, Javadoc, formatting) |
| SpotBugs | spotbugs.github.io | Static bug detector (200+ patterns) |
| PMD | pmd.github.io | Static code analyzer (correctness, design, performance) |
| JDT Language Server | eclipse.org | IDE-like intelli-sense, diagnostics, navigation |
Spring Boot CLI pulls in the most common starters at runtime. The full catalog:
| Starter | Purpose |
|---|---|
| spring-boot-starter-web | Web/REST applications (Spring MVC, Tomcat) |
| spring-boot-starter-data-jpa | Database persistence with JPA/Hibernate |
| spring-boot-starter-security | Authentication & authorization |
| spring-boot-starter-test | JUnit 5, Mockito, Hamcrest, Testcontainers |
| spring-boot-starter-validation | Bean validation (Jakarta Validation) |
| spring-boot-starter-actuator | Production monitoring (health, metrics) |
| spring-boot-starter-cache | Spring caching abstraction |
| spring-boot-starter-data-redis | Redis connectivity |
| spring-boot-starter-mail | Email support (Jakarta Mail) |
| spring-boot-starter-aop | Aspect-Oriented Programming |
| spring-boot-starter-data-mongodb | MongoDB persistence |
| spring-boot-starter-webflux | Reactive web (WebFlux, Netty) |
Prompt Claude to use standard Java linting practices. You can say "use the java skill to check my code, apply Google Java Format, and run checkstyle" and Claude will apply Java-specific linting rules, break tasks down properly, and mock test each segment for efficacy.
Directed skills improve code quality and resilience. With abliterated Claude and directed skills:
Say "use the java skill to..." to directly task Claude with Java-specific skills — Spring Boot scaffolding, Maven/Gradle builds, Google Java Format, SpotBugs analysis, and PMD code quality checks.
Extends Claude Code with specialized command-line tools. Available scripts are automatically in $PATH and activate via slash commands or Claude's built-in tool use:
claude-fix # Fix code issues with context-aware edits
claude-ask # Ask questions, get answers without side effects
claude-bash # Run bash with smarter timeouts and session persistence
claude-agent # Launch Claude as a persistent agent
To invoke the claude-tools development shell, add /bin/bash to your docker run or podman run command. This starts an interactive shell where claude-tools are available on $PATH and Claude Code is configured for development:
# claude-tools development shell with Docker
docker run -u $(id -u):$(id -g) -e ANTHROPIC_API_KEY=sk-... \
-v "$PWD:/workdir:rw" \
t2fn/java-claude-abliterated:latest /bin/bash
# Or with podman:
podman run -u $(id -u):$(id -g) --userns=keep-id \
-e ANTHROPIC_API_KEY=sk-... \
-v "$PWD:/workdir:rw" \
t2fn/java-claude-abliterated:latest /bin/bash
From the shell you can run claude-fix, claude-ask, claude-bash, claude-agent, and send slash commands (/fix, /ask, /plan) directly to Claude. Use claude-fix --comment to post inline PR comments or --fix to apply findings directly.
More examples: mijuny/claude-tools/tree/main/README.md
This container runs on claude-abliterated:rocky10, which uses the tweakcc (tweakcc-fixed) reduced system prompt to cut ~67% off daily-flow prompts — from ~30K to ~10K characters. For Java development, this means:
The container uses a no-silent-file-touching approach:
See SKILL.md for the full linting decision matrix.
"Claude" and "Claude Code" are registered trademarks of Anthropic, PBC. This project uses the name "Claude" in a nominative (descriptive) sense — it identifies the Anthropic product (Claude Code) that this project is built to work with, consistent with the nominative fair use doctrine. The use is necessary: a third-party project cannot refer to "Claude Code" without using the mark itself.
This project is not affiliated with, endorsed by, or sponsored by Anthropic, PBC. The name "java-claude-abliterated" is a third-party project name where:
The project uses both "Java" and "Claude" to describe what it works with, not who it is from.
"Spring", "Spring Boot", and "Spring Framework" are trademarks of Spring.io (VMware/Pivotal). References to Spring in this document are nominative — they describe the technology this container works with, not endorsement by VMware or Pivotal.
All other trademarks belong to their respective owners. No implication of endorsement is made by the use of these marks.
| Container | Purpose | Hub |
|---|---|---|
| asm-claude-abliterated | Cross-architecture assembly dev stack | Hub |
| gcc-claude-abliterated | C/C++ development with GCC + valgrind | Hub |
| golang-claude-abliterated | Go development with gopls + golangci-lint | Hub |
| python-claude-abliterated | Python linting with ruff + mypy | Hub |
| rust-claude-abliterated | Rust dev with clippy + cargo | Hub |
| java-claude-abliterated | Java/Spring Boot with Maven + Gradle | Hub |
| typescript-claude-abliterated | TypeScript dev with biome + eslint | Hub |
| hdl-claude-abliterated | FPGA/ASIC HDL dev (iverilog, ghdl, verilator) | Hub |
| ada-claude-abliterated | Ada development (GNAT via alr, AUnit testing) | Hub |
| cobol-claude-abliterated | COBOL compilation for mainframe modernization | Hub |
| julia-claude-abliterated | Julia scientific computing and IJulia notebooks | Hub |
| apache-claude-abliterated | Apache Spark + Pig big data processing | Hub |
| fortran-claude-abliterated | Fortran HPC with BLAS/LAPACK math libs | Hub |
| ghidra-claude-abliterated | Ghidra reverse engineering and malware inspection | Hub |
Source code and suggestions/issues/pull requests can be made at:
Content type
Image
Digest
sha256:10ba6fe57…
Size
939.3 MB
Last updated
22 days ago
docker pull t2fn/java-claude-abliterated