У меня есть небольшое приложение, которое отображается в системном трее.Процесс, приложение закрытия нити
Из этого приложения я запустил команду, я запустил другую программу java, и я получу ее inputStream и покажу ее в textArea.
final Process process = Runtime.getRuntime().exec(runCommand);
input = new LoggingThread(process.getInputStream());
error = new LoggingThread(process.getErrorStream());
input.start();
error.start();
In loggingThread
public void run()
{
while (running)
{
try
{
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String line = "";
try
{
while ((line = reader.readLine()) != null && running)
{
JTextAreaAppender.getTextArea().append(line);
JTextAreaAppender.getTextArea().append(System.getProperty("line.separator"));
}
}
finally
{
reader.close();
}
}
catch (IOException ioe)
{
ioe.printStackTrace();
}
}
}
, когда я бросить курить приложения я сделать
input.setRunning(false);
error.setRunning(false);
я сделать также Dispose на классе TrayIcon
в диспетчере задач, я по-прежнему видеть две нити для приложения, и один для процесса
если я удаляю процесс, резьба ... приложение правильно закрывается
если я поставил
proc.destroy();
после setRunning, закрытие приложения не работают вообще, TrayIcon продолжают показывать
любая идея?