From 4f82e1cf78b7325474b118c7c75e1c381ec271a1 Mon Sep 17 00:00:00 2001 From: Adam Shannon Date: Sun, 19 Aug 2018 17:56:28 -0500 Subject: [PATCH] java: fix paths for Windows and JRE (#54) Fixes #53 --- truststore_java.go | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) 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") + } } }