powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Ожидание завершения процесса
16 сообщений из 16, страница 1 из 1
Ожидание завершения процесса
    #39523066
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почему происходит прерывание выполнения процесса
Делал так:
String f = pathProgram + System.getProperty("file.separator") + "sdat2img.bat";
if (new File(f).exists()) {
deletefile(new File(f));
}
Functions.writefile(f, "cd \"%~dp0\"");
Functions.writefile(f, "bin\\python3\\python.exe bin\\sdat2img.py system.transfer.list system.new.dat system.img");
if (new File(f).exists() == true) {
Path path = Paths.get(f);
try {
Files.setAttribute(path, "dos:hidden", true);
new ProcessBuilder(f).start().waitFor();
deletefile(new File(f));
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
и так пробовал
try {
new ProcessBuilder(pathBin + System.getProperty("file.separator") + "python3" + System.getProperty("file.separator") + "python.exe", sdat2imgpy, SystemTransferList, SystemNewDat, SystemImg).start().waitFor();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

виснет одинаково. Ждет минуты 2 и все, дальше питон не работает.
В процессах висит, но не работает. Не работает от слова совсем.
Если создать bat файл и в ручную его запустить то все работает, если из java запускать - 2 мин и не работает.
Куда копать?
...
Рейтинг: 0 / 0
Ожидание завершения процесса
    #39523097
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Ожидание завершения процесса
    #39523102
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуйте осилить документацию касательно standard output и standard error
https://docs.oracle.com/javase/7/docs/api/java/lang/ProcessBuilder.html

Ваш питон пытается что-то записать в standard output или standard error. Но никто этого не читает. Вот он и блокируется. Про блокирующие IO слышали?

Решений возможых масса.
1. Взять пример кода из документации или любого туториала и прописать редиректы для выхлопа. Вы, ведь, не утруждаете себя чтением документации к классам которые используете?
2. Запустить фоновые потоки, которые просто читают выхлоп из процесса
https://docs.oracle.com/javase/7/docs/api/java/lang/Process.html
3. Добавить "cmd /C start" под виндой, чтобы отвязать нафиг фоновый процесс от Java. Но вам это не подходит, так как вы хотите использовать waitFor().
4. Взять любую либу, которая всё вышеперечисленное делает за вас.
https://commons.apache.org/proper/commons-exec/
...
Рейтинг: 0 / 0
Ожидание завершения процесса
    #39523105
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,
Ещё раз повторюсь, что работает без ошибок через батник. Но если этот же батник запустить из java и ждать его завершения - он вешается.
...
Рейтинг: 0 / 0
Ожидание завершения процесса
    #39523107
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngel,
Ещё раз повторюсь, что работает без ошибок через батник. Но если этот же батник запустить из java и ждать его завершения - он вешается.
Ещё раз повторюсь, вешается потому что не может ничего вывести.
...
Рейтинг: 0 / 0
Ожидание завершения процесса
    #39523109
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngelи так пробовал
Код: java
1.
pathBin + System.getProperty("file.separator") + "python3" + System.getProperty("file.separator") + "python.exe"


Забавно, что Path/Paths вы уже используете, но подобную ахинею продолжаете писать.
...
Рейтинг: 0 / 0
Ожидание завершения процесса
    #39523110
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,
Вот смотрите. Этот питоновские файл конвертит из одного формата в другой. При запуске из java происходит конвертирование до 777мб против того что на выходе должно получиться 2.7 гига. В окно он выводит только информацию о том что сейчас делает. Ошибок никаких этот скрипт никогда не выводит. Что мешает в java, зачем java душит этот процесс?
...
Рейтинг: 0 / 0
Ожидание завершения процесса
    #39523114
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

Если заметили то и кодом создаю этот же батник и его запускаю. Все одно и то же.
...
Рейтинг: 0 / 0
Ожидание завершения процесса
    #39523122
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngelВсе одно и то же.
Даже "текущий каталог"? Потому что для батника вы его зачем-то указываете явно, а для второго способа особо не заморачиваетесь.
...
Рейтинг: 0 / 0
Ожидание завершения процесса
    #39523130
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,
Для батника понятно почему, ибо чем пути короче, тем лучше и без пробелов в путях, чтоб не было трансов.
А вот на счёт java, я хз как он там это обрабатывает.
Сначала думал java криво отрабатывает, поэтому и решил вывести в батник и запустить. Оказалось одно и то же.
А если этот же батник покляцкать мышкой, то он отрабатывает правильно, на выходе все те 2.7 гига, какие и должны быть.
...
Рейтинг: 0 / 0
Ожидание завершения процесса
    #39523135
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngelДля батника понятно почему, ибо чем пути короче, тем лучше и без пробелов в путях, чтоб не было трансов.

Ересь какая-то.

BlackeAngelСначала думал java криво отрабатывает

Ну, да. Первая мысль это обвинить платформу, которую использую миллионы людей по всему миру и которая покрыта тысячами автоматизированых тестов.

BlackeAngel, поэтому и решил вывести в батник и запустить. Оказалось одно и то же.
А если этот же батник покляцкать мышкой, то он отрабатывает правильно, на выходе все те 2.7 гига, какие и должны быть.
Что-то вы путаетесь, то у вас батник работает, то не работает. Так работает батник из Java или нет???
...
Рейтинг: 0 / 0
Ожидание завершения процесса
    #39523138
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,
Я не путаюсь, я пишу как есть. Работает не полноценно = не работает. Работает = работает.
Но если этот же батник запустить из java и ждать его завершения - он вешается.

При запуске из java происходит конвертирование до 777мб против того что на выходе должно получиться 2.7 гига.

Работает при
А если этот же батник покляцкать мышкой, то он отрабатывает правильно, на выходе все те 2.7 гига, какие и должны быть.

Даже если из программы написанной на бейсике запустить и то работает, а из java - нет.
...
Рейтинг: 0 / 0
Ожидание завершения процесса
    #39523155
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отлично. Мы выяснили что из Java не работает ровным счетом нихрена. Внимание вопрос. Что не так с первоначальным советом добавить redirect-ы в ProcessBuilder что вы его так упорно игнорируете?
...
Рейтинг: 0 / 0
Ожидание завершения процесса
    #39523227
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,
Добавил редиректы и все заработало. Что за нафиг такой? В выходных файлах правда пустота, но - почему такая дикая хрень с этой java? Что просто нельзя вызови и жди.
...
Рейтинг: 0 / 0
Ожидание завершения процесса
    #39523258
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngelДобавил редиректы и все заработало. Что за нафиг такой?

Всегда пожалуйста.

BlackeAngelВ выходных файлах правда пустота

"Видишь суслика?" (с)

BlackeAngelно - почему такая дикая хрень с этой java? Что просто нельзя вызови и жди.
Ну, так может надо было брать платформу, в которой всё просто? Которая сбросит ваши логи в /dev/null и вы будете спокойно наслаждаться тем что "а у меня всё работает" и не важно что происходит на самом деле и у конечного пользователя.
...
Рейтинг: 0 / 0
Ожидание завершения процесса
    #39523289
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,
Ну кто знал что у java такие скалы подводные.

Ну посоветуйте мне тогда кроссплатформенный язык который работал бы и на windows, linux,mac os, android? И чтоб работал с окнами, файлами, и тп прелести, ещё и без костылей. Да ещё и с огромной документацией.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Ожидание завершения процесса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]