воскресенье, 2 сентября 2012 г.

Приколом с класспазом через командную строку


Про CLASSPATH

Чтобы определенные классы из определенных библиотек были доступны при выполнении
приложения в ява машине, нужно чтобы библиотеки находились
в том же каталоге где и код приложения, или же нужно чтобы
пыть к библиотекам был указан в системной переменной CLASSPATH.



Также мы можем указать класспаз непостредственно через командруную строку
в момент выполнения программы. Вот пример как мы указываем путь к библиотеке, которую мы используем в нашем
приложении, но тут нужно не забывать, что виртуальная машина в буквальном смысле наченет искать
наше приложение среди класспаза(там, что указанов в системной переменной + в аргументе cp), но никак не в поточной
директории, просто если мы не указываем явно cp, то по-молчанию поточная директория тоже добавляется в класспаз.
Поэтому нужно опрееделить и поточную директорию в класспазе через точку, ну и пути в виндоусе традиционно
разделяются точкой с запятой, в юникс-подобных системах двоеточием :

java -cp .;/path/to/java/libs MyApp


Параметры перемеданные при выполнении программы, которые следуют
за именем нашего приложения, передаются ОС в явамашину. Их
ОС и ява машина понимает, как строковые переменные. К ним у нас доступ
через аргумент массива строк метода main нашего приложения, чтобы
получить какой-то другой тип из строки, ее унжно просто пропарсить:
нр. Integer.parseInt()


Просто воспоминания:


Чтобы не перетирать, то что было в файле при переопределении стандартного
вывода приложения, необходимо ставить знак не >, а >>

Когда приложение что-то принимает из командной строки,
можно нажать CTRL+Z, что введет знак енд оф файл, так приложение
поймет, что ввод закончен

Piping

C:\introcs> java RandInts > temp.txt
C:\introcs> more < temp.txt

Вот так покороче:
C:\introcs> java RandInts | more

Комментариев нет:

Отправить комментарий