pub fn full_search() -> Result<Vec<JavaInfo>, JavaError>Expand description
Performs a comprehensive, multi-strategy scan for Java installations.
This is the most thorough search method. It checks $JAVA_HOME first,
then applies every available discovery strategy for the current platform:
Windows: Registry (HKLM + HKCU for JavaSoft, Azul, BellSoft, Temurin,
Corretto, GraalVM) → Keyword BFS on all drives → Microsoft Store →
where java → Chocolatey → Scoop → JetBrains IDE-bundled JDK.
Linux: /usr/lib/jvm → /usr/java → /opt → /usr/local →
SDKMAN → JBang → asdf-vm → JetBrains IDE-bundled JDK → Minecraft runtime.
macOS: /Library/Java/JavaVirtualMachines →
/usr/libexec/java_home → SDKMAN → JBang → asdf-vm → Homebrew →
JetBrains IDE-bundled JDK → Minecraft runtime.
Results are automatically deduplicated — when both a JDK and its bundled JRE are discovered, only the JDK-level entry is kept.
§Returns
A Vec<JavaInfo> for every valid Java installation found.
§Errors
Returns JavaError::IoError if file-system operations fail.
Individual unreadable paths are skipped silently.
§Example
use java_manager::full_search;
let javas = full_search()?;
for java in &javas {
println!("{:25} {}", java.name, java.version);
}