Java IDE Environment
Enterprise Java development with OpenJDK 17, Spring Boot, Maven, and Gradle.
What's Inside
| Tool | Version | Purpose |
|---|---|---|
| Java | OpenJDK 17 | Runtime and compiler |
| Maven | Latest | Build and dependency management |
| Gradle | Latest | Alternative build tool |
| Spring Boot | Ready | Web framework (via scaffolding) |
Quick Start
# Compile and run a single file
java-run Main.java
# Build and run a Maven project
java-run
# Run tests
java-test
# Scaffold a Spring Boot project
java-spring my-app
# Scaffold a plain Maven project
java-init my-app
Helper Commands
| Command | What it does |
|---|---|
java-run |
Build + run (auto-detects Maven or Gradle) |
java-run Main.java |
Compile + run a single Java file |
java-test |
Run tests (auto-detects Maven or Gradle) |
java-spring <name> |
Scaffold a Spring Boot project with REST API |
java-init <name> |
Scaffold a plain Maven project |
java-help |
Show all available commands |
Spring Boot Scaffolding
Running java-spring my-app creates:
my-app/
├── pom.xml # Spring Boot, JPA, Validation, H2
├── src/main/java/com/learncen/
│ ├── Application.java # Spring Boot entry point
│ ├── model/Product.java # JPA entity
│ ├── repository/ProductRepository.java
│ ├── service/ProductService.java
│ └── controller/ProductController.java # REST API
├── src/main/resources/
│ ├── application.properties # H2 database config
│ └── data.sql # Seed data
└── src/test/java/
└── ProductControllerTest.java # MockMvc integration tests
Start it with:
cd my-app
java-run
# API available at http://localhost:8080/api/products
Tips
java-runauto-detects whether you're in a Maven or Gradle project- For single files, just
java-run Main.java— no project setup needed - JVM memory is auto-tuned: 75% of pod limit (MaxRAMPercentage), 50% initial
Ctrl+Shift+Bbuilds and runs the current project
Security
- Root access is restricted. Use
sudo apt install <package>for system packages. - Java, Maven, and Gradle are whitelisted for sudo access.
- JVM respects Kubernetes pod CPU and memory limits automatically.