Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как вызвать первую программу из второй? 
V
    Опции темы
kornata
Дата 24.4.2010, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 25.2.2010

Репутация: нет
Всего: нет



Как вызвать первую программу из второй?  smile 
PM MAIL   Вверх
jk1
Дата 24.4.2010, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1168
Регистрация: 17.10.2008
Где: Санкт-Петербург

Репутация: 40
Всего: 75



В самом простом случае так:
Код

 if (Desktop.isDesktopSupported()){
          Desktop.getDesktop().open(new File("путь к исполняемому файлу первой программы"));
      }

Если надо взаимодействовать с запущенным процессом, то нужно запускать так:
Код

 ProcessBuilder builder = new ProcessBuilder("путь к исполняемому файлу первой программы");
 Process p = builder.start();

Ну и конечно не рекомендуемый, но тем не менее работающий вариант:
Код

 Runtime.getRuntime().exec("путь к исполняемому файлу первой программы");


Это сообщение отредактировал(а) jk1 - 24.4.2010, 16:51


--------------------
Opinions are like assholes — everybody has one
PM MAIL   Вверх
kornata
Дата 24.4.2010, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 25.2.2010

Репутация: нет
Всего: нет



Не понятно, можно объяснить чайнику?

Добавлено через 2 минуты и 3 секунды
Это кусочек кода и я не могу посматреть, как это работает. Можно примеры двух простеньких программ, где одна вызывает другую?
PM MAIL   Вверх
jk1
Дата 24.4.2010, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1168
Регистрация: 17.10.2008
Где: Санкт-Петербург

Репутация: 40
Всего: 75



1) В качестве "первой" из вашей задачи возьмите любую программу из установленных на вашей системе
2) "Вторую" напишите сами, пример для первого из описанных мной способов:
Код

public class Test {

    public static void main(String[] args) throws Exception {
        if (Desktop.isDesktopSupported()) {
            Desktop.getDesktop().open(new File("c:\\Program Files\\Adobe\\Reader 9.0\\Reader\\acrord32.exe"));
        }
    }
}

В пример надо не забыть подставить путь к исполняемому файлу "первой" программы
3) Скомпилируйте и запустите класс, вы увидите как запустится "первая" программа


--------------------
Opinions are like assholes — everybody has one
PM MAIL   Вверх
kornata
  Дата 24.4.2010, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 25.2.2010

Репутация: нет
Всего: нет



jk1,  спасибо, всё получилось!  smile 
PM MAIL   Вверх
kornata
Дата 24.4.2010, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 25.2.2010

Репутация: нет
Всего: нет



Ну exeя запустила, а джава программа не запускается:


Exception in thread "main" java.io.IOException: Cannot run program "Data.java": CreateProcess error=2, The system cannot find the file specified
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:459)
        at pr1kor.Main.main(Main.java:10)
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
        at java.lang.ProcessImpl.create(Native Method)
        at java.lang.ProcessImpl.<init>(ProcessImpl.java:81)
        at java.lang.ProcessImpl.start(ProcessImpl.java:30)
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:452)
        ... 1 more

PM MAIL   Вверх
jk1
Дата 24.4.2010, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1168
Регистрация: 17.10.2008
Где: Санкт-Петербург

Репутация: 40
Всего: 75



Цитата

The system cannot find the file specified

все же написано - системе не удается найти указанный файл. Скорее всего вы неверно указали путь к нему или у вас нет прав на доступ к файлу.


--------------------
Opinions are like assholes — everybody has one
PM MAIL   Вверх
kornata
Дата 24.4.2010, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 25.2.2010

Репутация: нет
Всего: нет



Exception in thread "main" java.io.IOException: Cannot run program "C:\Documents and Settings\st52309\My Documents\NetBeansProjects\Pr1kor\src\pr1kor\Data.java": CreateProcess error=193, %1 is not a valid Win32 application
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:459)
        at pr1kor.Main.main(Main.java:10)
Caused by: java.io.IOException: CreateProcess error=193, %1 is not a valid Win32 application
        at java.lang.ProcessImpl.create(Native Method)
        at java.lang.ProcessImpl.<init>(ProcessImpl.java:81)
        at java.lang.ProcessImpl.start(ProcessImpl.java:30)
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:452)
        ... 1 more
Java Result: 1

PM MAIL   Вверх
MaxPayneC
Дата 24.4.2010, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 324
Регистрация: 18.2.2006

Репутация: 5
Всего: 9



Способами, которые описал jk1, можно запускать исполняемые файлы. *.java - это исходный код, а не исполняемый файл.
PM   Вверх
kornata
Дата 24.4.2010, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 25.2.2010

Репутация: нет
Всего: нет



MaxPayneC, и как тогда нужно запускать?
PM MAIL   Вверх
MaxPayneC
Дата 24.4.2010, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 324
Регистрация: 18.2.2006

Репутация: 5
Всего: 9



Вам нужно запустить другую программу, написанную на джаве, т.е. файл *.class?
PM   Вверх
jk1
Дата 24.4.2010, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1168
Регистрация: 17.10.2008
Где: Санкт-Петербург

Репутация: 40
Всего: 75



kornata, скажите, а вы понимаете разницу между файлом исходного кода и исполняемым файлом?

.java - это исходный код, сам по себе он не может быть запущен
.class - так называемый байт-код, получаемый из .java путем компиляции

вывод: .java файл нельзя запускать так, как вы это делаете, предварительно его необходимо скомпилировать.



--------------------
Opinions are like assholes — everybody has one
PM MAIL   Вверх
kornata
Дата 25.4.2010, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 25.2.2010

Репутация: нет
Всего: нет



Запустила класс, а что нужно дописать, чтобы вывелись результаты первой программы?
PM MAIL   Вверх
kornata
Дата 25.4.2010, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 25.2.2010

Репутация: нет
Всего: нет



Неужели никто не знает?
PM MAIL   Вверх
kornata
Дата 26.4.2010, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 25.2.2010

Репутация: нет
Всего: нет



Помогите запустить вторую программу.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0907 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.