Помню, в первом семестре первого курса университета на занятиях по информатике от нас требовали знать X способов включения компьютера, Y способов запуска программы и Z способов завершения работы...
Наверное, разработчиков Groovy учили приблизительно тому же - иначе зачем они придумали столько способов запуска groovy-скрипта? Итак.
1) Сохранить скрипт в текстовом файле с именем *.groovy и запустить его из командной строки:
Пусть src содержит groovy скрипты, lib - библиотеки (обязательно нужна groovy-all-[version].jar). Тогда для запуска пригодится такой полезный стартовый bat-файл :
6) Работать прямо из командной строки
6.1) ключ -e - исполнение кода, записанного в командной строке:
И хотя некоторые из имеющихся способов подходят, скорее, для людей, "знающих толк в извращениях", тем не менее, пространство для выбора достаточно большое.
Наверное, разработчиков Groovy учили приблизительно тому же - иначе зачем они придумали столько способов запуска groovy-скрипта? Итак.
1) Сохранить скрипт в текстовом файле с именем *.groovy и запустить его из командной строки:
C:\examples>type Example.groovy
println "Good bye, world!"
C:\examples>groovy Example //в качестве параметра передаём имя файла
Good bye, world!
C:\examples>Example.groovy //работает, если в системе существует привязка расширения groovy к GDK2) Скомпилировать в java класс и запустить с помощью java:
Good bye, world!
C:\examples>dir3) Выполнить код с помощью groovy shell:
Directory of C:\examples
27.06.2012 09:55 26 Example.groovy
C:\examples>groovyc Example.groovy
C:\examples>dir
Directory of C:\examples
27.06.2012 09:56 6 805 Example.class
27.06.2012 09:56 26 Example.groovy
C:\examples>java -cp .;"%GROOVY_HOME%\emdeddable\groovy-all-1.8.6.jar" Example
Good bye, world!
C:\examples>groovyc Example.groovy4) Сохранить скрипт в текстовом файле с именем *.groovy и запустить его с помощью java и GroovyShell (своего рода комбинация предыдущих способов):
Groovy Shell <1.8.6, JVM: 1.6.0_29>
Type 'help' or '\h' for help.
--------------------------------------------------
groovy:000> println "Good bye, world!"
Good bye, world!
===> null
groovy:000> class Person {
groovy:001> def Name
groovy:002> def Family
groovy:003> def whatIsYrName () { "My name is ${Name} ${Family} " }
groovy:004> }
===> true
groovy:000> whoIs = new Person ( Family: "Zombie", Name: "Ivan" )
===> Person@1716fa0
groovy:000> whoIs.whatIsYrName()
===> My name is Ivan Zombie
Пусть src содержит groovy скрипты, lib - библиотеки (обязательно нужна groovy-all-[version].jar). Тогда для запуска пригодится такой полезный стартовый bat-файл :
rem set JAVA_HOME=c:\Program Files\Java\jdk1.6.0_295) Выполнить код в groovy console:
rem set PATH=%JAVA_HOME%\bin
set CUR_DIR=%~dp0
set LIB_DIR=%CUR_DIR%lib
set CLASSPATH=%LIB_DIR%\*
set JAVA_OPTS=-Xms256m -Xmx528m -XX:MaxPermSize=256m -Dgroovy.source.encoding=UTF8 -Dfile.encoding=UTF-8
set SCRIPT_HOME=%CUR_DIR%src
set MAIN_SCRIPT=%SCRIPT_HOME%\Example.groovy
call java -cp %CLASSPATH%;%SCRIPT_HOME% groovy.lang.GroovyShell %MAIN_SCRIPT% %*
C:\examples>groovyConsole
Окно groovy console |
6) Работать прямо из командной строки
6.1) ключ -e - исполнение кода, записанного в командной строке:
C:\examples>groovy -e "println 'Good bye, world!'"
Good bye, world!
C:\examples>groovy -e "println 'Good bye, ' + args.join(' or ') + ' world!'" this that6.2) переменная line и ключи -n -e - обработка каждой строки из входного потока:
Good bye, this or that world!
C:\examples>type Test-6-2.txt
some text line
C:\examples>type Test-6-2.txt | groovy -n -e "println line.toUpperCase()"
SOME TEXT LINE
C:\examples>type Test-6-2.txt | groovy -n -e "line.split(/\s+/).each { println it; }"6.3) ключ -i - обработка файла с созданием резервной копии (.bak)
some
text
line
C:\examples>dir
Directory of C:\examples
27.06.2012 10:41 14 Test-6-2.txt
C:\examples>type Test-6-2.txt
some text line
C:\examples>groovy -p -i .bak -e "println line.toUpperCase()" Test-6-2.txt
C:\examples>dir
Directory of C:\examples
27.06.2012 11:13 16 Test-6-2.txt
27.06.2012 10:41 14 Test-6-2.txt.bak
C:\examples>type Test-6-2.txt
SOME TEXT LINE
C:\examples>type Test-6-2.txt.bak
some text line
И хотя некоторые из имеющихся способов подходят, скорее, для людей, "знающих толк в извращениях", тем не менее, пространство для выбора достаточно большое.
Комментариев нет:
Отправить комментарий