Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.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
Java 如果Runtime.getRuntime().exec失败,如何引发错误_Java - Fatal编程技术网

Java 如果Runtime.getRuntime().exec失败,如何引发错误

Java 如果Runtime.getRuntime().exec失败,如何引发错误,java,Java,我尝试以下几点: package ro.gd.ex; /** * Created by roroco on 11/17/14. */ public class Ex { public static void main(String[] args) { try { Process process = Runtime.getRuntime().exec("echo -n $(date)|xclip --selection clipboard");

我尝试以下几点:

package ro.gd.ex;

/**
 * Created by roroco on 11/17/14.
 */
public class Ex {
    public static void main(String[] args) {
        try {
            Process process = Runtime.getRuntime().exec("echo -n $(date)|xclip --selection clipboard");
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
}
如果我在终端中运行此cmd,它将引发

roroco@roroco ~/Dropbox/jvs/ro-gd $ echo -n $(date)|xclip --selection clipboard
xclip: --selection: No such file or directory
roroco@roroco ~/Dropbox/jvs/ro-gd $ echo $?
1
但是在java中,它没有引起什么问题,我的问题是如何使这个cmd抛出错误。我发现它的退出状态是1

我的操作系统:

roroco@roroco ~/Dropbox/jvs/ro-gd $ lsb_release -a
No LSB modules are available.
Distributor ID: LinuxMint
Description:    Linux Mint 17 Qiana
Release:    17
Codename:   qiana
process.waitFor()
,它将返回命令的错误级别,然后只需创建一个新的
Exception
(可能是
IOException

您也可以考虑使用<代码> PalueBuffer-<代码> > <代码>运行时。GeRunTune()
public static void main(String[] args) {
    try {
        ProcessBuilder pb = new ProcessBuilder(
                        "echo",
                        "-n",
                        "$(date)|xclip",
                        "--selection",
                        "clipboard"
        );
        pb.redirectError();
        pb.inheritIO();
        Process process = pb.start();
        // Really should be reading the Process's InputStream
        int exitCode = process.waitFor();
        if (exitCode != 0) {
            throw new IOException("Command exited with " + exitCode);
        }
    } catch (Exception ex) {
        ex.printStackTrace();
    }
}

如果Runtime.getRuntime().exec失败,如何引发错误

process.waitFor();,exitCode是0,为什么? 什么时候: 0=正常退出。 1=退出时出错

此流程对象表示的子流程的退出值。按照惯例,值0表示正常终止,值1表示不良终止

有些代码可能是这样的: 进程p=Runtime.getRuntime().exec(“Seguridad.bat”)


<代码>进程。WAITFORE()/Cord>将返回命令的错误级别,然后简单地创建一个新的<代码>异常< /代码>(可能是<代码> IOExux< /代码>)……您也可以考虑使用<代码> PrimeBuffer-<代码> > <代码>运行时.GeRunTune()。我不想输入那么多:P@MadProgrammer不,我没有解决我的问题,关键是我何时运行echo$?在终端中,它是-1,但在int-exitCode=process.waitFor();,exitCode是0,为什么?我不确信
1
是退出代码(或者至少我对命令了解不够)不,我没有解决我的问题,关键是当我在终端中运行
echo$?
时,它是-1,但在
int exitCode=process.waitFor()中,exitCode为0,为什么?什么操作系统?它为我打印
0
(CLI)同样,你需要去澄清你的问题
public static void main(String[] args) {
    try {
        ProcessBuilder pb = new ProcessBuilder(
                        "echo",
                        "-n",
                        "$(date)|xclip",
                        "--selection",
                        "clipboard"
        );
        pb.redirectError();
        pb.inheritIO();
        Process process = pb.start();
        // Really should be reading the Process's InputStream
        int exitCode = process.waitFor();
        if (exitCode != 0) {
            throw new IOException("Command exited with " + exitCode);
        }
    } catch (Exception ex) {
        ex.printStackTrace();
    }
}
        int exitCode = p.waitFor();
        if (exitCode != 0) {
            JOptionPane.showConfirmDialog(null,"Error Execute when exitCode=1");
        }else{
            JOptionPane.showConfirmDialog(null,"fine Execute when exitCode=0");

        }