## TL;DR
Use a valid generator name from `swagger-codegen-cli help generate` and match the CLI jar version to your spec version. ClassNotFoundException means the name you passed does not map to any generator class.

## Error
```text
ClassNotFoundException: com.example.custom.MyGenerator
```

## Steps
1. List the generators your CLI actually ships: `java -jar swagger-codegen-cli.jar help generate` and check the NAME column. Expected: the exact valid names available.
2. Compare with the `-g` value you passed; fix typos and case. For custom generators, the fully qualified class name must be on the classpath via `--additional-properties` or a shaded jar. Expected: the name matches a real generator.
3. Check version alignment: swagger-codegen 2.x vs 3.x have different generator sets, and OpenAPI 3 specs need the 3.x CLI. Expected: CLI major version matches your spec version.
4. Re-run the generate command. Expected: code generation starts instead of throwing.

## When to use
- swagger-codegen-cli throws ClassNotFoundException
- A custom generator class is not found
- The CLI version and spec version disagree

## When not to use
- The spec itself fails validation (fix the spec)
- You want OpenAPI Generator (a different tool with different names)
- Generation runs but output is wrong (a template issue)

## Tool compatibility
swagger-codegen-cli 2.x and 3.x. Generator names differ between majors; always list from the jar you run.

### Variant phrasings
### ClassNotFoundException for a documented generator name
The docs may describe a newer version than your jar. Upgrade the CLI or use the name your version lists.

### custom generator worked before a CLI upgrade
Shade the custom generator into the new CLI version or pin the CLI version that worked.

## Why it happens
The `-g` value is resolved to a class by name at runtime. There is no fuzzy matching, so any typo, version drift, or missing custom class on the classpath throws ClassNotFoundException immediately.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_sHoOtfFNYVtgTkITryn9Bg
