System requirement validation and resolution for autorest.
—
Quality
Pending
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Pending
The risk profile of this skill
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.