Виртуальная песочница (тм)

Friday, May 15, 2009

How to read properties located outside/inside the jar?

Обычная ситуация: приложение упаковано в архив, а файл с настройками находится вне архива. Как читать файл настроек?

Первый, не очень элегантный вариант, заключается в том, чтобы передавать приложению местоположение конфигурационного файла как параметр -- либо как параметр командной строки, либо как system property:
-Dsome.name=/path/to/the.properties


Более элегантное решение - разместить конфигурационный файл в одном из каталогов, прописанных в CLASSPATH, и использовать
ClassLoader.getSystemResource("filename")

Такое решение следует паттерну "Convention over Configuration" и не замусоривает интерфейс запуска приложения. При помощи того же метода ClassLoader'а можно читать и properties-файлы, расположенные внутри jar-файла.

See also "property file location" discussion thread on TheServerSide. Read more...

Лабораторная работа по теме "бат-файлы"

Лабораторная по предмету «Операционные системы», тема — batch-файлы. Мы с другом выполнили все задания, ждем, когда препод соизволит их проверить. От скуки был написан virus.bat:

:A
start cmd
goto A


Результат — растущая куча окошек DOS. «Вирус» тут же был оптимизирован:

start cmd
call virus


Нет предела совершенству, и код был сжат до одной строки:

start virus


Также была написана версия с повышенной жестокостью:

start virus /REALTIME /ABOVENORMAL
call virus


Теперь каждое созданное окно начинало безудержно плодить новые окна. Компьютер печально вис через пару десятков секунд. Тут же была разработана вакцина vaccine.bat, убивавшая все окна:

taskkill /F /T /IM cmd*


Ради интереса в начало вакцины была добавлена строчка start vaccinе. После чего начались «войны в памяти» — мы запускали вакцину и какой-нибудь из вирусов и наблюдали, кто кого победит.

[#862]
Read more...