func findVersion()

in cmd/hotdog-hotpatch/main.go [356:385]


func findVersion(j *jvm) (jvmVersion, bool) {
	split := strings.SplitN(j.version, " ", 4)
	kind := split[0]
	if kind != "openjdk" && kind != "java" {
		logger.Printf("Skipping unsupported JVM kind: %q for %d", kind, j.pid)
		return "", false
	}
	if len(split) < 3 {
		logger.Printf("Failed to locate version for %d", j.pid)
		return "", false
	}
	semver := split[2]
	if semver[0] == '"' {
		semver = semver[1:]
	}
	if semver[len(semver)-1] == '"' {
		semver = semver[:len(semver)-1]
	}
	parts := strings.SplitN(semver, ".", 3)
	switch {
	case parts[0] == "17":
		return java17, true
	case parts[0] == "11",
		parts[0] == "15":
		return java11, true
	case parts[0] == "1" && len(parts) > 1 && parts[1] == "8":
		return java8, true
	}
	return jvmVersion(parts[0]), false
}