OpenStreetMap

JOSM Portable

Posted by Otnow on 19 March 2015 in Russian (Русский). Last updated on 8 March 2018.

Опишу используемую мной реализацию переносимой версии JOSM для Windows.

Данная реализация имеет возможность автоматического обновления дистрибутива JOSM и полностью автономна, т.е. наличие установленной Java-машины в ОС не требуется, т.к. она уже находится в комплекте.

Реализация состоит из следующих компонентов:

  1. дистрибутив JOSM
  2. Java-машина
  3. утилита Wget
  4. bat-скрипт
  5. значек

1. Дистрибутив JOSM

В основном я пользуюсь последней нестабильной версией, но если она очень глючит запускаю стабильную, поэтому у меня сразу два дистрибутива:

Файлы дистрибутивов именуются как есть и располагаются в корне каталога JOSM:

JOSM\
  josm-latest.jar
  josm-tested.jar
  ...

2. Java-машина

Для достижения полной автономности работы используется переносимая версия Java-машины, загрузить которую можно следующим образом:

Java SE Downloads

  • на странице загрузки Java SE Runtime Environment (JRE) нужно принять лицензионное соглашение и загрузить архив *.tar.gz для Windows x86

Java SE Runtime Environment Downloads

Архив распаковывается в подкаталог JAVA и располагается в корне каталога JOSM:

JOSM\
  JAVA\
    bin\
    lib\
    ...
  ...

3. Утилита Wget

Для автоматического обновления дистрибутива JOSM используется консольная утилита Wget, бинарный файл для Windows которой можно загрузить с сайта тов. Jernej Simončič (за что ему большое спасибо :-) ) по прямой ссылке.

Файл утилиты именуется как есть и располагается в корне каталога JOSM:

JOSM\
  wget.exe
  ...

4. Bat-скрипт

Bat-скрипт служит для организации автоматического обновления дистрибутива и запуска JOSM в портативном режиме:

@echo off
set josm_dir=%~dp0
"%josm_dir%wget.exe" --quiet --show-progress --timestamping --backups=1 --no-check-certificate --directory-prefix="%josm_dir:\=/%" https://josm.openstreetmap.de/josm-<версия>.jar
start /b /d "%josm_dir%JAVA\bin" javaw.exe -Xmx1024M -Djosm.home="%josm_dir%config" -jar "%josm_dir%josm-<версия>.jar"
exit

Порядок работы скрипта:

  • с помощью утилиты Wget перед запуском JOSM производится загрузка с официального сайта с отображением прогресса (опция –show-progress) и обновление с созданием резервной копии предыдущей версии (_josm-<версия>.jar.1_, опция _--backups_) его дистрибутива, но только в том случае, если файл был изменен на сервере (опция _--timestamping_)

  • с помощью переносимой версии Java-машины запускается JOSM в портативном режиме (опция -Djosm.home) и с увеличенным лимитом на использование ОЗУ (опция -Xmx1024M)

После первого запуска JOSM создаст в своем корневом каталоге подкаталог config и будет использовать его для хранения своих настроек (preferences.xml), плагинов (plugins), кэша тайлов (cache) и других файлов.

Как упоминалось выше я использую обе версии JOSM, поэтому создал 2 файла bat-скрипта для запуска каждой из версий:

  • для запуска последней нестабильной версии (START_LATEST.bat):

      @echo off
      set josm_dir=%~dp0
      "%josm_dir%wget.exe" --quiet --show-progress --timestamping --backups=1 --no-check-certificate --directory-prefix="%josm_dir:\=/%" https://josm.openstreetmap.de/josm-latest.jar
      start /b /d "%josm_dir%JAVA\bin" javaw.exe -Xmx1024M -Djosm.home="%josm_dir%config" -jar "%josm_dir%josm-latest.jar"
      exit
    
  • для запуска стабильной версии (START_TESTED.bat):

      @echo off
      set josm_dir=%~dp0
      "%josm_dir%wget.exe" --quiet --show-progress --timestamping --backups=1 --no-check-certificate --directory-prefix="%josm_dir:\=/%" https://josm.openstreetmap.de/josm-tested.jar
      start /b /d "%josm_dir%JAVA\bin" javaw.exe -Xmx1024M -Djosm.home="%josm_dir%config" -jar "%josm_dir%josm-tested.jar"
      exit
    

Файлы bat-скриптов именуются произвольно и располагаются в корне каталога JOSM:

JOSM\
  START_LATEST.bat
  START_TESTED.bat
  ...

5. Значек

Значек (ico-файл) используется как декоративный элемент для красивого оформления ярлыка на файл bat-скрипта.

Файл значка (*.ico) именуется произвольно и располагается в корне каталога JOSM:

JOSM\
  josm.ico
  ...

5.1 Лайфхак

Чтобы закрепить ярлык на файл bat-скрипта на панели задач в Windows 7 и выше нужно:

  • создать ярлык на любой исполняемый файл (*.exe) и поместить его на панель задач
  • в свойствах ярлыка на панели задач изменить путь объекта на файл bat-скрипта и сменить значек

JOSM shortcut

Описанная реализация переносимой версии JOSM для Windows со всеми необходимыми файлами находится в данном архиве (версии Java-машины и Wget актуальны на момент публикации, поэтому при необходимости обновите их):

JOSM\
  JAVA\
  josm.ico
  josm-latest.jar
  josm-tested.jar
  START_LATEST.bat
  START_TESTED.bat
  wget.exe

Спасибо за внимание и приятного маппинга :-)

Discussion

Comment from freeExec on 19 March 2015 at 07:26

Надо бы ещё уточнить что ява-машина там х86 (судя по скринам закачки). А так, я бы рекомендовал запускать JOSM с конколью, чтобы видеть ошибки: \bin\java.exe -Dfile.encoding=Cp866

Comment from Otnow on 19 March 2015 at 09:41

Над скриншотом в описании есть указание на разрядность:

на странице загрузки Java SE Runtime Environment (JRE) нужно принять лицензионное соглашение и загрузить архив *.tar.gz для Windows x86

А открытой консолью пользуюсь только когда что-то идет не так, не люблю лишних окон :-)

Comment from Gumeg on 24 March 2015 at 09:55

Я правильно понимаю, что все настройки оформления программы, её дополнительные модули сохраняются на переносном накопителе?

Comment from Otnow on 24 March 2015 at 11:53

Да, сохраняется все:

  • preferences.xml - настройки, в том числе и офрмление
  • plugins - дополнительные модули
  • cache - кэш тайлов спутниковых подложек, т.е. можно редактировать полностью в оффлайне

Comment from Gumeg on 26 March 2015 at 20:19

Спасибо за подробный мануал! Буду на выхах пробовать. Ещё такой вариант увидел - http://forum.openstreetmap.org/viewtopic.php?pid=411432#p411432

Comment from Otnow on 26 March 2015 at 20:34

Хорошо, что есть разные варианты, можно выбрать или адаптировать под себя.

Comment from qeef on 12 April 2021 at 12:19

This could help, too: https://mapathon-cz.gitlab.io/josm-on-flash/ (sorry, I don’t speak Russian.)

Log in to leave a comment