@@ -11,6 +11,7 @@ import (
1111 "log"
1212 "os"
1313 "os/exec"
14+ "runtime"
1415 "strings"
1516 "syscall"
1617)
@@ -27,19 +28,26 @@ func main() {
2728 args := []string {"-jar" , strings .TrimPrefix (jarName , "./" )}
2829 args = append (args , jarArgs ... )
2930
30- cmd := exec .Command (binary , args ... )
31- cmd .Stdout = os .Stdout
32- cmd .Stderr = os .Stderr
33- cmd .Stdin = os .Stdin
31+ if runtime .GOOS == "windows" {
32+ cmd := exec .Command (binary , args ... )
33+ cmd .Stdout = os .Stdout
34+ cmd .Stderr = os .Stderr
35+ cmd .Stdin = os .Stdin
3436
35- if err := cmd .Run (); err != nil {
36- if err , ok := err .(* exec.ExitError ); ok {
37- if status , ok := err .Sys ().(syscall.WaitStatus ); ok {
38- // Exit with the same code as the Java program
39- os .Exit (status .ExitStatus ())
37+ if err := cmd .Run (); err != nil {
38+ if err , ok := err .(* exec.ExitError ); ok {
39+ if status , ok := err .Sys ().(syscall.WaitStatus ); ok {
40+ // Exit with the same code as the Java program
41+ os .Exit (status .ExitStatus ())
42+ }
43+ } else {
44+ log .Fatalf ("Bootstrap execution error: %v" , err )
4045 }
41- } else {
42- log .Fatalf ("Bootstrap execution error: %v" , err )
46+ }
47+ } else {
48+ err = syscall .Exec (binary , append ([]string {"java" }, args ... ), nil )
49+ if err != nil {
50+ log .Fatalf ("Bootstrap execution error: %v" , os .Environ ())
4351 }
4452 }
4553}
0 commit comments