Java runtime detection and version validation for AutoRest Java-based extensions. Provides simple Java availability checking with version parsing from the standard java -version command output.
Resolves Java runtime requirements by executing java -version and parsing the version output.
/**
* Resolve Java runtime requirement
* @param requirement - Java requirement configuration
* @returns Resolution with Java command and version, or error details
*/
function resolveJavaRequirement(
requirement: SystemRequirement
): Promise<SystemRequirementResolution | SystemRequirementError>;Usage Example:
import { resolveJavaRequirement } from "@autorest/system-requirements";
// Basic Java requirement
const result = await resolveJavaRequirement({ version: ">=11" });
if ("error" in result) {
console.error("Java not found or version incompatible:", result.message);
} else {
console.log(`Java resolved: ${result.command}`);
console.log(`Java name: ${result.name}`); // "java"
}
// Using custom Java path via environment variable
const customResult = await resolveJavaRequirement({
version: ">=17",
environmentVariable: "JAVA_HOME_PATH"
});The Java resolver follows this detection process:
environmentVariable is specified in the requirement, uses that pathjava command in system PATHjava -version and parses output using regex patternJava version detection parses the output of java -version command, which typically looks like:
java version "11.0.12"
OpenJDK Runtime Environment...The version string is extracted using the regex pattern: /java version "(.*)"/
/** Java executable name used in system requirement resolution */
const JavaExeName = "java";Common Java resolution errors include:
java executable is not in PATH and no environment variable specifiedjava -version outputjava -version command failed to executeThe resolver provides detailed error messages to help diagnose Java installation and configuration issues.