diff --git a/src/main/resources/xjar/xjar.go b/src/main/resources/xjar/xjar.go index 956c69e..8369700 100644 --- a/src/main/resources/xjar/xjar.go +++ b/src/main/resources/xjar/xjar.go @@ -78,12 +78,30 @@ func main() { xKey.password, {13, 10}, }, []byte{}) cmd := exec.Command(java, args...) - cmd.Stdin = bytes.NewReader(key) + + stdin, err := cmd.StdinPipe() + if err != nil { + fmt.Printf("[*] launch fail:%v", err) + return + } + cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr - err = cmd.Run() - if err != nil { - panic(err) + + if err = cmd.Start(); err != nil { + fmt.Printf("[*] launch start fail:%v", err) + return + } + + go func() { + stdin.Write(key) + + io.Copy(stdin, os.Stdin) + fmt.Printf("[*] launch stdin over") + }() + + if err = cmd.Wait(); err != nil { + fmt.Printf("[*] launch exit with:%v", err) } }