Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Запуск программы


Автор: max07 29.3.2006, 18:30
Как программно запусть другую прогу? Какая в яве есть функция?

Автор: Beard 29.3.2006, 18:31
cм.
Код

Runtime.getRuntime().exec(...)

Автор: max07 29.3.2006, 19:31
А чё вместо ... писать то? Имя фаила?

Автор: Beard 29.3.2006, 19:42
Ну если это под виндой и есть приложение, связанное с расширением этого файла, то
это приложение должно вызваться после такой строчки:
Код

Runtime.getRuntime().exec("cmd.exe /r " + fileName)

Автор: max07 29.3.2006, 19:57
а если не в винде а в линухе?

Автор: Beard 29.3.2006, 20:08
В принципе - никакой разницы.
Что надо написать в *nix консоли, чтоб запустить то, что тебе надо? Вот и передай это в exec().

Если нужно, чтоб приложение запускалось в какой-нибудь конкретной директории, используй
Код

Runtime.getRuntime().exec(String[] arguments, String[] envp, File dir);


например:
Код

        String[] arguments = new String[] {"javaw", "-jar", "ekit.jar", "c:\\test.html"};
        Process process = Runtime.getRuntime().exec(arguments, new String[0], new File("c:\\run_dir"));

Автор: max07 29.3.2006, 21:31
ну в линухе чё то неочень получается запустить тотже *.htm фаил....

Автор: LSD 29.3.2006, 21:36
Цитата(max07 @ 29.3.2006, 21:31 Найти цитируемый пост)
ну в линухе чё то неочень получается запустить тотже *.htm фаил....

HTML файл запустить нельзя, он не является исполняемым, запускать надо браузер. Попробуй что нибудь наподобие firefox my_doc.html. А еще лучше спроси у линуксоидов как из командной строки открыть файл ассоциированной программой.

Автор: max07 29.3.2006, 21:43
О, то что надо. СПАСБО!!!

Автор: lordtao 3.2.2010, 12:06
А как остановить запущенную программу? Например нужно сначала в командной строке запустить jar, а затем завершить эту программу. 
Типа:

Код

import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author A.Tsvetkov
 */
public class Main {

   /**
    * @param args параметры командной строки
    */
   public static void main(String[] args) {
      if (args.length == 0) {
         System.out.println("Server start: mobsadmin start\n\rServer shutdown: mobsadmin stop");
         System.exit(0);
      }
      try {
         if (args[0].toLowerCase().equals("start")) {
            // Здесь код запуска jar файла программы "any.jar"
         }
         if (args[0].toLowerCase().equals("stop")) {
            // Здесь код остановки запущенной до этого программы "any.jar"
         }
      } catch (IOException ex) {
         Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
      }
   }
}


Автор: LSD 3.2.2010, 17:57
Цитата(lordtao @  3.2.2010,  12:06 Найти цитируемый пост)
А как остановить запущенную программу?

Запущенную кем? И что за программа?

Если запускаешь ее ты из своей программы, то можно вызвать Process.destroy(). Если это твоя программа, то пусть она слушает некий порт на 127.0.0.1 и как только туда поступит специальный сигнал - завершит свою работу.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)