2012-05-30 2 views
0

привет у меня есть код, который при запуске открывает cmd, а затем открывает рамку. Я хочу, чтобы cmd был закрыт, как только откроется рамка, или CMD должен быть закрыт в тот же момент, когда пользователь закрывает рамку. это код, когда я закрываю свой кадр.закрыть cmd + рамка при нажатии на кнопку закрытия

frame = new JFrame("BrainSla"); 
frame.setLayout(new BorderLayout()); 
frame.setResizable(false); 
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 

здесь основной код:

public static void main(String args[]) { 
    try { 
     System.out.println("BrainSla - By Jannes Braet, Steven Brain, Wout Slabbinck."); 
     nodeID = 10; 
     portOff = 0; 
     setHighMem(); 
     isMembers = true; 
     signlink.storeid = 32; 
     signlink.startpriv(InetAddress.getLocalHost()); 
     new Jframe(args); 
     //instance = new client(); 
     //instance.createClientFrame(503, 765); 
    } catch(Exception e) { 
     e.printStackTrace(); 
    } 
} 

может кто-нибудь сказать мне, как я мог бы сделать что-то подобное?

ответ

0

изменение frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); в

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

Это приведет к выходу из приложения, как только вы закроете кадра

+0

Рамка закрывается, но командная строка остается открытой. –

+0

System.out.println («BrainSla - by Jannes Braet, Steven Brain, Wout Slabbinck.»), Новый Jframe (args); это код, используемый в основной функции, может быть, это может немного помочь? –

+0

Вы используете рамку и cmd из того же основного метода? Не могли бы вы отредактировать главный пост, содержащий ваш полный главный? –

0

Если под «ЦМД» вы имеете в виду «командной строки» или CLI. Опции:

  1. Запуск из файла летучей мыши (или аналогичных по ОС) с использованием javaw вместо java
    • Низкий кривой обучения.
    • Не очень профессиональный вид.
  2. Сделать это работоспособным Jar (двойной щелчок, чтобы открыть)
    • Средняя кривая обучения.
    • Средний профессиональный вид.
  3. Запуск его с помощью JWS
    • кривой высокого обучения.
    • Очень профессиональный вид.
0

При запуске из командной строки, закрывающую окно командной строки закроет приложение преждевременно. Не уверен, что любой способ сделать это на Windows, но на Linux вы можете фон процесса и сделать это с помощью команды:

nohup java -jar myprogram.jar & 
0

Если запустить процесс от с вашей Java-приложения (напр путем вызова Время воспроизведения.. exec() или ProcessBuilder.start()), то у вас есть действительная ссылка на Process, и вы можете вызвать метод destroy() в классе Process, чтобы убить этот конкретный процесс.

Но имейте в виду, что если процесс, который вы вызываете, создает новые подпроцессы, они не могут быть завершены (см. http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4770092).

С другой стороны, если вы хотите убить внешние процессы (которые вы не создали из своего Java-приложения), то одна вещь, которую вы можете сделать, - это вызвать утилиты O/S, которые позволяют вам это делать. Например, вы можете попробовать Runtime.exec() для команды kill в Unix/Linux и проверить значения возврата, чтобы гарантировать, что приложение было убито или нет (0 означает успех, -1 означает ошибку). Но это, конечно, сделает вашу платформу приложений зависимой.

Смежные вопросы