从java运行.sh脚本

时间:2014-02-15 17:04:49

标签: java linux terminal runtime sh

我有一个游戏,我将启用自动重启功能。它将每24小时发生一次,这很容易实现。但问题是,我不知道如何打开运行“run.sh”(执行Java游戏服务器)。

代码将首先关闭所有内容,并且在调用System.exit之前,它应该在新终端中打开run.sh。我该怎么做?

这是我目前使用的方法,但它给了我这个错误。

public static boolean start() {
        try {
            List<String> command = new ArrayList<String>();
            command.add("cd /root/Dropbox/[SALLESY] 742 Server");
            command.add("java -Xmx1024m -Xss2m -Dsun.java2d.noddraw=true -XX:+DisableExplicitGC -XX:+AggressiveOpts -XX:+UseAdaptiveGCBoundary -XX:MaxGCPauseMillis=500 -XX:SurvivorRatio=16 -XX:+UseParallelGC -classpath bin:data/libs/* com.sallesy.Application");
            ProcessBuilder builder = new ProcessBuilder(command);
            Process proc = builder.start();
            BufferedReader read = new BufferedReader(new InputStreamReader(
                    proc.getInputStream()));
            try {
                proc.waitFor();
            } catch (InterruptedException e) {
                System.out.println(e.getMessage());
            }
            while (read.ready()) {
                System.out.println(read.readLine());
            }
        } catch (Exception e) { 
            System.out.println(e.getMessage());
            return false;
        }
        return true;
    }

错误:

sh script.sh
Cannot run program "cd /root/Dropbox/[SALLESY] 742 Server": error=2, No such file or directory
Could not start a new session...

2 个答案:

答案 0 :(得分:0)

尝试转义字符串:

"cd /root/Dropbox/\[SALLESY\]\ 742\ Server"

答案 1 :(得分:-1)

漂亮的游戏m8你做到了吗?

也在这里:^)

"cd /root/Dropbox/\[SALLESY\]\ 742\ Server"