Проблема с плагином для осмозиса -- который osmfilter-1.0-SNAPSHOT.jar

Хотя наверно та же проблема с любым другим.

Так вот.
Когда пользователь виндуоз (т.е.я ) вошел в систему интерактивно, все работает.
Но когда осмозис запускается (из батфайла) автоматически по таймеру из “Назначенных заданий” (после перезагрузки, когда интерактивного пользователя в системе нет) то не работает, и пишет:

SEVERE: Execution aborted.
org.openstreetmap.osmosis.core.OsmosisRuntimeException: Task type uwn doesn’t exist.

Причем задание запускается от той же учетной записи, которой пользуюсь я.

Кто-нибудь с таким сталкивался?
(Windows XP SP3)

A включить авто-заход в нужный акк при старте винды видимо нельзя?..

А ты куда плагин положил? Там куча вариантов есть, в том числе и в текущем каталоге…

Куда сказали:
C:\Documents and Settings\Zkir\Application Data\Openstreetmap\Osmosis\Plugins\osmfilter-1.0-SNAPSHOT.jar

А текущий каталог, текущий по отношению к чему?

Там под виндой ещё были варианты:

•the current directoy or

•the subdirectory plugins in the current directory

Текущий каталог процесса. Если запускаешь батником - соответственно тот, который ставится командой CD.

Сергей, а нельзя там в яве помотреть как он текущего пользователя берет? Может в этом зло? Или жестко путь прописать?

Всё можно. Вот фрагмент исходника osmosis, который определяет каталоги для поиска плугинов:

Соответственно берётся:

  1. подкаталог plugins текущего каталога процесса

  2. <параметр user.home (под виндами “C:\Documents and Settings<UserName>”)>/.openstreetmap/osmosis/plugins

  3. <переменная окружения APPDATA (под виндами “APPDATA=C:\Documents and Settings<UserName>\Application Data”)>/openstreetmap/osmosis/plugins

Так что, если плугин положен в application data, надо смотреть как винда выставляет переменную APPDATA. Или просто явно выставить её в батнике самому.

P.S. Можно так же переопределить user.home в строке запуска (ключик -Duser.home=). Судя по osmosis.bat его можно задать в переменной JAVACMD_OPTIONS

P.P.S. Ну а самый хардкорный вариант - подправить исходник osmosis-а чтобы он искал плугины в нужных местах. Данный фрагмент находится в классе org.openstreetmap.osmosis.core.TaskRegistrar, метод gatherJpfPlugins() :slight_smile:

надо смотреть как винда выставляет переменную APPDATA.
Выставляет в пусто!