diff --git a/truststore_java.go b/truststore_java.go index 7d84f5f..a7d3980 100644 --- a/truststore_java.go +++ b/truststore_java.go @@ -13,8 +13,8 @@ import ( "hash" "os" "os/exec" - "path" "path/filepath" + "runtime" "strings" ) @@ -29,17 +29,31 @@ var ( ) func init() { + if runtime.GOOS == "windows" { + keytoolPath = filepath.Join("bin", "keytool.exe") + } else { + keytoolPath = filepath.Join("bin", "keytool") + } + if v := os.Getenv("JAVA_HOME"); v != "" { hasJava = true javaHome = v - _, err := os.Stat(path.Join(v, "bin/keytool")) + _, err := os.Stat(filepath.Join(v, keytoolPath)) if err == nil { hasKeytool = true - keytoolPath = path.Join(v, "bin/keytool") + keytoolPath = filepath.Join(v, keytoolPath) } - cacertsPath = path.Join(v, "jre/lib/security/cacerts") + _, err = os.Stat(filepath.Join(v, "lib", "security", "cacerts")) + if err == nil { + cacertsPath = filepath.Join(v, "lib", "security", "cacerts") + } + + _, err = os.Stat(filepath.Join(v, "jre", "lib", "security", "cacerts")) + if err == nil { + cacertsPath = filepath.Join(v, "jre", "lib", "security", "cacerts") + } } }