-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathexec.go
More file actions
43 lines (35 loc) · 856 Bytes
/
exec.go
File metadata and controls
43 lines (35 loc) · 856 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package wrapper
import (
"fmt"
"io"
"os/exec"
)
type JavaExec interface {
Stdout() io.ReadCloser
Stdin() io.WriteCloser
Start() error
Kill() error
}
type defaultJavaExec struct {
cmd *exec.Cmd
}
func (j *defaultJavaExec) Stdout() io.ReadCloser {
r, _ := j.cmd.StdoutPipe()
return r
}
func (j *defaultJavaExec) Stdin() io.WriteCloser {
w, _ := j.cmd.StdinPipe()
return w
}
func (j *defaultJavaExec) Start() error {
return j.cmd.Start()
}
func (j *defaultJavaExec) Kill() error {
return j.cmd.Process.Kill()
}
func javaExecCmd(serverPath string, initialHeapSize, maxHeapSize int) *defaultJavaExec {
initialHeapFlag := fmt.Sprintf("-Xms%dM", initialHeapSize)
maxHeapFlag := fmt.Sprintf("-Xmx%dM", maxHeapSize)
cmd := exec.Command("java", initialHeapFlag, maxHeapFlag, "-jar", serverPath, "nogui")
return &defaultJavaExec{cmd: cmd}
}