Java Process Detector
Detects and classifies Java processes running on the system.
Overview
The Java detector evaluates each process using the following steps:
- Verifies the process is running Java (
java executable)
- Attempts application-specific detection using sub-detectors
- Always prepends the
JVM category to each metadata result
- If the sub-detectors did not match or did not extract a metadata name, falls back to generic Java name extraction
- Attempts to extract the JMX port to determine metadata status
- Returns the metadata result
Sub-detectors
- If Java archive (
.jar, .war):
- Attempts to extract the names from the manifest file in the following priority order:
Application-Name - Non-standard, but explicit name
Implementation-Title - Standard application name
Start-Class - Spring Boot application class (not the launcher)
Main-Class - Entry point class (fallback)
- If none of those are found, falls back on the archive base filename without the extension (e.g.
app.jar -> app)
- If not Java archive:
- Falls back on the entrypoint class name from the command-line
JMX Port Detection
Extracts JMX ports from command line arguments or environment variables in the following priority order:
- System Property (
-Dcom.sun.management.jmxremote.port)
- Environment Variable (
JMX_PORT)
{
"categories": ["JVM"],
"name": "com.example.DemoApplication",
"telemetry_port": 1234,
"status": "READY"
}