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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запуск perl script linux, linux+java+perl 
:(
    Опции темы
izver84
Дата 26.4.2011, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Добрый день. Работаю на Линуксе.
Есть  perl  script, который переносит данные из дбф в postgresql.
Нужно чтобы, при нажатии кнопки он запускался.
Код


                    try
                    {                                        
                    Runtime.getRuntime().exec("/usr/bin/perl imports101i.pl");
                    }
                    catch(Exception e1) {
                    System.out.println("Error creating the FileInfo panel: " +e1);
                    e1.printStackTrace();
                    }


Запускаю команду через термнал, обрабатываются 1100 записей из 1100.
А запускаю через Runtime, обрабатываются 193 записей из 1100. 

Не понятно. Как ещё можно запустить?




--------------------
Если новая программа с первого раза компилируется без ошибок, значит, она написана принципиально неправильно. 
PM MAIL   Вверх
gcc
Дата 28.4.2011, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


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

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



может как-то так:
Код

                    Runtime.getRuntime().system("/usr/bin/perl imports101i.pl &");

PM WWW ICQ Skype GTalk Jabber   Вверх
sergioK1
Дата 7.5.2011, 21:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(izver84 @ 26.4.2011,  14:02)
Добрый день. Работаю на Линуксе.
Есть  perl  script, который переносит данные из дбф в postgresql.
Нужно чтобы, при нажатии кнопки он запускался.
Код


                    try
                    {                                        
                    Runtime.getRuntime().exec("/usr/bin/perl imports101i.pl");
                    }
                    catch(Exception e1) {
                    System.out.println("Error creating the FileInfo panel: " +e1);
                    e1.printStackTrace();
                    }


Запускаю команду через термнал, обрабатываются 1100 записей из 1100.
А запускаю через Runtime, обрабатываются 193 записей из 1100. 

Не понятно. Как ещё можно запустить?

Видимо твой жава процесс (father)заканчивает работу после 193 записей а son process(perl script) становиться зомби .
 что показывает ps -A ?

попробуй так

Код

 Process p=  Runtime.getRuntime().exec("/usr/bin/perl imports101i.pl");
          p.waitFor()


И еще пробел в имени файла - не очень гуд,
на всякий случай проверь чтоб из шела и из жавы зпускал один юзер 

PM MAIL   Вверх
izver84
Дата 31.5.2011, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



попробовал
Код

    try
                    {                        
                         Process p= Runtime.getRuntime().exec("/usr/bin/perl imports101i.pl");
                         p.exitValue();
                          p.waitFor();
                    }
                    catch(Exception e1) {
                    System.out.println("Error creating the FileInfo panel: " +
                    e1);
                    e1.printStackTrace();
                    }

 ошибка
Код

Error creating the FileInfo panel: java.lang.IllegalThreadStateException: process hasn't exitedjava.lang.IllegalThreadStateException: process hasn't exited

    at java.lang.UNIXProcess.exitValue(UNIXProcess.java:172)
    at bon.Bonlinux$11.actionPerformed(Bonlinux.java:1334)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
    at java.awt.Component.processMouseEvent(Component.java:6289)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
    at java.awt.Component.processEvent(Component.java:6054)
    at java.awt.Container.processEvent(Container.java:2041)
    at java.awt.Component.dispatchEventImpl(Component.java:4652)
    at java.awt.Container.dispatchEventImpl(Container.java:2099)
    at java.awt.Component.dispatchEvent(Component.java:4482)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
    at java.awt.Container.dispatchEventImpl(Container.java:2085)
    at java.awt.Window.dispatchEventImpl(Window.java:2478)
    at java.awt.Component.dispatchEvent(Component.java:4482)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644)
    at java.awt.EventQueue.access$000(EventQueue.java:85)
    at java.awt.EventQueue$1.run(EventQueue.java:603)
    at java.awt.EventQueue$1.run(EventQueue.java:601)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
    at java.awt.EventQueue$2.run(EventQueue.java:617)
    at java.awt.EventQueue$2.run(EventQueue.java:615)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:614)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)




--------------------
Если новая программа с первого раза компилируется без ошибок, значит, она написана принципиально неправильно. 
PM MAIL   Вверх
LSD
Дата 31.5.2011, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

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



Когда создаешь процесс, надо обязательно читать его stdout и stderr. Если этого не делать буфер заполнится и процесс подвиснет на записи в stdout/stderr пока буфер не освободится.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
sergioK1
Дата 31.5.2011, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



а если другой скрипт вызвать ,тоже падает ? . ощущение что проблема совсем не в скрипте ,а в гуи формах, 

PM MAIL   Вверх
aleksandy
Дата 1.6.2011, 05:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



sergioK1, LSD ответ правильный дал. Проблема ТС в том, что он не читает документацию.
PM   Вверх
sergioK1
Дата 1.6.2011, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(aleksandy @ 1.6.2011,  04:03)
sergioK1, LSD ответ правильный дал. Проблема ТС в том, что он не читает документацию.


 мне бросилось в глаза  ,

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
...

Я не очень понимаю 
какое  это имеет отношение к запуску скрипта , и очистке буфера ?
 

Это сообщение отредактировал(а) sergioK1 - 2.6.2011, 09:21
PM MAIL   Вверх
aleksandy
Дата 3.6.2011, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(sergioK1 @  1.6.2011,  13:03 Найти цитируемый пост)
Я не очень понимаю 
какое  это имеет отношение к запуску скрипта , и очистке буфера ?

В данном конкретном случае - самое прямое, т.к. выполнение скрипта запускается в ActionListener#actionPerformed(ActionEvent).

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

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

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


 




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


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

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