执行**杀死-9<;PID>;**通过java执行的命令不起作用
我正在执行下面的命令来终止一个进程,但它不会终止任何进程 我试过的命令:#kill-9“2319” 但同时,当我在命令提示符中执行相同的命令时,它的工作状态良好执行**杀死-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
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。