执行**杀死-9<;PID>;**通过java执行的命令不起作用

执行**杀死-9<;PID>;**通过java执行的命令不起作用,java,linux,Java,Linux,我正在执行下面的命令来终止一个进程,但它不会终止任何进程 我试过的命令:#kill-9“2319” 但同时,当我在命令提示符中执行相同的命令时,它的工作状态良好 private void killProcess() { InputStream errorStream = null; final String taskKill = isWindows() ? InstallerConstants.WIN_TASKKILL : InstallerConstants.LIN_TASKK

我正在执行下面的命令来终止一个进程,但它不会终止任何进程

我试过的命令:#kill-9“2319”

但同时,当我在命令提示符中执行相同的命令时,它的工作状态良好

private void killProcess()
{
    InputStream errorStream = null;
    final String taskKill = isWindows() ? InstallerConstants.WIN_TASKKILL : InstallerConstants.LIN_TASKKILL;
    try 
    {
        Process process = null;
        final String killCMD = taskKill+"\""+getGuiProcess()+"\"";\\kill -9 "2319"
        process = runTime.exec(killCMD);
        errorStream = process.getErrorStream();
        bufferedReader =  new BufferedReader(new InputStreamReader(errorStream));
        String error = "";
        while(bufferedReader.readLine() != null)
        {
            error =  bufferedReader.readLine();
        }
        if(!(error==null || "".equals(error)))
        {
            logger.error(error);
        }
    } 
    catch (IOException ioException) {
        logger.error(ioException.getMessage(), ioException);
    }
    finally
    {
        try 
        {
            if(bufferedReader!=null)
            {
                bufferedReader.close();
            }
            if(errorStream!=null)
            {
                errorStream.close();
            }               
        } 
        catch (IOException ioException) {
            logger.error(ioException.getMessage(), ioException);
        }           
    }
}

请帮助解决此问题。

您需要指定kill命令的绝对路径

 /bin/kill may be? 

 $ whereis kill //output will show you where kill command is.

顺便说一句,您是否有任何错误?

您是否尝试指定kill命令的绝对路径?getGuiProcess()返回的值是否正确?是的,getGuiProcess()返回的值是否正确。@Axel。。我没有指定绝对值path@kgopi您有权运行
kill-9
?我没有收到任何错误,bufferedReader.readLine();当我执行命令kill时返回null:/bin/kill/usr/bin/kill/usr/share/man/man1/kill.1.gz/usr/share/man/man1p/kill.1p.gz/usr/share/man/man3p/kill.3p.gz/usr/share/man/man2/kill.2.gz………否,通过java得到的结果code@kgopi您是否更改了此行:最后一个字符串killCMD=taskKill+“\”“+getGuiProcess()+”\”\\kill-9“2319”使用绝对路径?实际上,您必须编辑这个字符串:InstallerConstants.LIN_taskKill无论您提到的解决方案是什么,它都不起作用,我遵循的方法是:-runtime.exec(“kill-9 1234”,null,new File(“/bin”);如果我通过命令提示符手动执行它的工作,通过代码返回null。