diff --git a/Cargo.lock b/Cargo.lock index 0082e81..5769326 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -79,7 +79,7 @@ dependencies = [ [[package]] name = "buildj" -version = "0.1.0" +version = "0.1.1" dependencies = [ "dirs 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "json 0.11.14 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/Cargo.toml b/Cargo.toml index 15c7774..7dfdb58 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "buildj" -version = "0.1.0" +version = "0.1.1" authors = ["Hatter Jiang "] edition = "2018" diff --git a/src/jdk.rs b/src/jdk.rs index 1909ef3..cd9116d 100644 --- a/src/jdk.rs +++ b/src/jdk.rs @@ -20,6 +20,7 @@ use super::{ }; const OPENJDK_MACOS: &str = "openjdk-osx"; +const JDK_LINUX: &str = "jdk-linux"; const OPENJDK_LINUX: &str = "openjdk-linux"; pub const LOCAL_JAVA_HOME_BASE_DIR: &str = ".jssp/jdks"; @@ -41,24 +42,26 @@ pub fn get_cloud_java(version: &str) -> bool { if ! is_macos_or_linux() { return false; } - let cloud_java_name = if is_macos() { - OPENJDK_MACOS + let cloud_java_names = if is_macos() { + vec![OPENJDK_MACOS] } else if is_linux() { - OPENJDK_LINUX + vec![JDK_LINUX, OPENJDK_LINUX] } else { - "" + vec![] }; let local_java_home_base_dir = match local_util::get_user_home_dir(LOCAL_JAVA_HOME_BASE_DIR) { Err(_) => return false, Ok(o) => o, }; - match tool::get_and_extract_tool_package(&local_java_home_base_dir, false, cloud_java_name, version, false) { - Err(err) => { - print_message(MessageType::ERROR, &format!("Get java failed, version: {}, error: {}", version, err)); - return false; - }, - Ok(_) => true, + for i in 0..cloud_java_names.len() { + let cloud_java_name = cloud_java_names[i]; + match tool::get_and_extract_tool_package(&local_java_home_base_dir, false, cloud_java_name, version, false) { + Err(_) => (), + Ok(_) => return true, + } } + print_message(MessageType::ERROR, &format!("Get java failed, version: {}", version)); + false } pub fn get_macos_java_home(version: &str) -> Option {