Страница 1 из 1

запуск java-программ

СообщениеДобавлено: 14.08.2010 (Сб) 15:50
Winitar
Что то не могу никак разобраться. Что бы запустить java программу, необходимо написать команду - java program.

На сколько я понял, что автоматировать это, создают bat-файлы. Что то вроде:

c:\java\bin\java.exe proogram
pause

Это на винде. А как это делается на линуксе? Как в линуксе создать исполняемый файл, который бы выполнял необходимые команды в консоли?

Re: запуск java-программ

СообщениеДобавлено: 14.08.2010 (Сб) 15:52
iGrok
Да в общем-то также..
Создать файл runprogram.sh примерно с таким содержимым:
Код: Выделить всё
#!/bin/sh
java program.jar

Потом этому файлу надо разрешить выполнение - сhmod +x runprogram.sh

Re: запуск java-программ

СообщениеДобавлено: 14.08.2010 (Сб) 15:54
Winitar
iGrok писал(а):Да в общем-то также..

Сейчас попробуем...

Re: запуск java-программ

СообщениеДобавлено: 14.08.2010 (Сб) 15:55
iGrok
Я там чуть поправил первую строку. Забыл про "!".

Вообще, под линуксом можно писать "исполняемые" файлы для любого интерпретатора скриптов. Пайтон, перл, sh.. Да хоть пхп.

Общий принцип - первая строка файла - путь к нужному интерпретатору, начинающийся с #!
А далее - сам скрипт на нужном языке. Для шелл-команд интерпретатором обычно выступает sh или bash, или ещё какой-то шелл, который у тебя установлен.

Re: запуск java-программ

СообщениеДобавлено: 14.08.2010 (Сб) 16:04
Winitar
Получилось, спасибо. А как сделать, что бы терминал не вылетал сразу после выполнения программы?

Re: запуск java-программ

СообщениеДобавлено: 14.08.2010 (Сб) 16:08
iGrok
Можно как-то так:
http://jaduks.livejournal.com/5492.html
http://www.cyberciti.biz/tips/linux-uni ... mmand.html

Но возможно есть и другие способы.

Re: запуск java-программ

СообщениеДобавлено: 14.08.2010 (Сб) 16:11
Winitar
И еще, скрип все запускает правильно, если в консоли сначала указать "cd <путь к программе>", и только потом запустить скрипт. Нельзя ли сделать так, что бы путь определялся каждый раз сам (то есть та папка, где лежит скрипт).

Re: запуск java-программ

СообщениеДобавлено: 14.08.2010 (Сб) 16:18
iGrok
Насколько я помню, всё зависит от того, откуда ты его запускаешь, так что лучше везде указывать полные пути. В том числе и к самой яве.

Re: запуск java-программ

СообщениеДобавлено: 17.08.2010 (Вт) 8:34
VVitafresh
Winitar писал(а):И еще, скрип все запускает правильно, если в консоли сначала указать "cd <путь к программе>", и только потом запустить скрипт. Нельзя ли сделать так, что бы путь определялся каждый раз сам (то есть та папка, где лежит скрипт).

Если запускать скрипт вручную так:
Код: Выделить всё
./runprogram.sh
то текущим каталогом будет тот, из которого запускается скрипт.

Re: запуск java-программ

СообщениеДобавлено: 18.08.2010 (Ср) 3:33
Александр Дмитриев
VVitafresh писал(а):Если запускать скрипт вручную так:
Код: Выделить всё
./runprogram.sh
то текущим каталогом будет тот, из которого запускается скрипт.
Верное утверждение, но я подумал, что оно может ввести в заблуждение автора темы. Текущий каталог в начале работы скрипта (или во всё время его работы, если внутри скрипта его не меняют) никак абсолютно не зависит от того, как скрипт запущен. Вместо этого он всегда равен текущему каталогу запустившей его программы на момент запуска.

Winitar писал(а):И еще, скрип все запускает правильно, если в консоли сначала указать "cd <путь к программе>", и только потом запустить скрипт. Нельзя ли сделать так, что бы путь определялся каждый раз сам (то есть та папка, где лежит скрипт).
Писать в скрипте полный путь к запускаемой программе. Но не к самой яве (нехорошая практика, после переустановки явы в другое место такие скрипты перестают работать; собственно, для этого и была придумана переменная PATH). Если хочется сделать скрипт более универсальным (чтобы он работал при перемещении запускаемой программы вместе со скриптом в другое место) можно программно внутри скрипта выяснить то, где он находится, и подставить нужный путь запускаемой программе:
Код: Выделить всё
#!/bin/sh
PROGRAMDIR=`which "$0"`
PROGRAMDIR=`dirname $PROGRAMDIR`
java -jar "$PROGRAMDIR/program.jar"

Re: запуск java-программ

СообщениеДобавлено: 18.08.2010 (Ср) 12:30
Winitar
Спасибо, попробуем..