Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux没有通过Java执行命令_Java_Linux_Bash_Runtime - Fatal编程技术网

Linux没有通过Java执行命令

Linux没有通过Java执行命令,java,linux,bash,runtime,Java,Linux,Bash,Runtime,我试图从一个机器人运行一些服务器,但我无法让它运行我的屏幕和主机服务器。我试着调试并得到一些代码来调试,但我什么也没想到。也许是我的语法 这些是可以运行的值:name=factorio,path=/opt/factorio/bin/x64/factorio,args=--start server map.zip 共同构成: screen-dmS factorio-m bash-c”/opt/factorio/bin/x64/factorio--start server map.zip“ 您可以直

我试图从一个机器人运行一些服务器,但我无法让它运行我的屏幕和主机服务器。我试着调试并得到一些代码来调试,但我什么也没想到。也许是我的语法

这些是可以运行的值:name=factorio,path=/opt/factorio/bin/x64/factorio,args=--start server map.zip

共同构成:

screen-dmS factorio-m bash-c”/opt/factorio/bin/x64/factorio--start server map.zip“


您可以直接运行服务器命令,而无需通过抛出屏幕。屏幕是一个终端多路复用器,它允许用户在一个终端窗口内访问多个单独的终端会话。@PascalFares,这样我就可以执行
/opt/factorio/bin/x64/factorio--启动服务器映射。zip
,它会为我运行它吗?它会占用我的java线程吗?我是否有权访问进程stdIn(Screen不允许我访问,所以这将是一个加号)?如果您自己运行
Screen-dmS factorio-m bash-c”/opt/factorio/bin/x64/factorio--start server map.zip“
,它是否会生成屏幕并启动服务器?如果我在putty中手动执行,是的,如果我从程序执行,则否。
public boolean run() {

        try {
            System.out.println("screen -dmS "+serverName+" -m bash -c \""+path+" "+args+"\"");
            Process proc = rt.exec("screen -dmS "+serverName+" -m bash -c \""+path+" "+args+"\"");

            BufferedReader read = new BufferedReader(new InputStreamReader(proc.getErrorStream()));
            String str = null;
            while ( (str = read.readLine()) != null)
                System.out.println(str);
            try {
                proc.waitFor();
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            System.out.println("Exit value: "+proc.exitValue());
            this.setStatus(ONLINE);
            return true;
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            return false;
        }
    }