Forum OSM France

Lancer JOSM sans JavaWebStart ou OpenWebStart

Bonjour,
Voici un petit mémo sur la manière de se passer de JavaWebStart et de OpenWebStart pour lancer JOSM.

Contexte

Josm peut - en théorie - être lancé simplement en cliquant sur un lien donné sur le site web de josm : josm.jnlp.

Un clic sur ce lien déclenche les actions suivantes :

  1. téléchargement du fichier josm.jnlp
  2. lancement de OpenWebstart ou JavaWebStart avec ce jichier jnlp en argument
  3. téléchargement du fichier josm-tested.jar (c’est ce fichier qui contient le code logiciel JOSM pré-compilé en Java)
  4. démarrage d’une machine virtuelle JAVA pour exécuter le code contenu dans josm-tested.jar

En pratique, on a des problèmes à plusieurs niveaux :

  • JavaWebStart n’est plus supporté par l’éditeur Oracle, et n’est plus inclus dans les versions récentes de java. Il existe bien une alternative libre : https://openwebstart.com/, mais il faut l’installer.
  • le lancement automatique de OpenWebstart ou JavaWebStart sur réception de fichir jnlp ne fonctionne pas forcément bien.
  • on n’a pas de maîtrise sur la version java utilisée pour lancer JOSM.

Solution de contournement (pour Windows)

Je propose un petit script qui télécharge le fichier josm-tested.jar et qui l’exécute avec la version de java choisie.

Le téléchargement n’est fait que lorsque le site web josm.openstreemap.de propose une nouvelle version de Josm. En l’absence de mise à jour, on se contente de lancer le fichier josm-tested.jar présent sur l’ordinateur.

commencez par créer un fichier texte sur le bureau, nommez-le « josm.cmd » et collez-y le contenu suivant, en l’adaptant à votre contexte :

@rem Chemin d'accès à curl
set curl=D:\Logiciels\curl-7.65.1-win64-mingw\bin\curl.exe

@rem Répertoire d'installation de java
set JAVA_HOME=D:\Logiciels\jdk-17.0.1+12
@rem set JAVA_HOME=D:\Logiciels\jdk-17.0.2+8-jre
@rem set JAVA_HOME=D:\PA\PortableApps\CommonFiles\OpenJDKJRE64

set java=%JAVA_HOME%\bin\java.exe

@rem l’endroit où se trouve le fichier josm-tested.jar
set josm_jar=C:\Users\alice\Downloads\josm-tested.jar

%curl% -z %josm_jar% -o %josm_jar% -v https://josm.openstreetmap.de/josm-tested.jar

%java% -jar %josm_jar%

Double-cliquez sur josm.cmd pour le lancer, et voilà (comme disent les anglais).

Pré-requis

Curl : c’est un outil qui permet d’accéder à une ressource identifiée par une URL. Téléchargez curl for Windows, et installez-le sur votre ordinateur dans le dossier de votre choix. Mettez à jour la variable curl dans le script josm.cmd (ligne « set curl=… »).

(ou bien, vous pouvez utiliser wget à la place de curl, allez voir Wget for Windows, et adaptez le script en conséquence).

Java : utilisez la version de votre choix, par exemple :

Un JRE (Java Runtime Environment) suffit, un JDK (Java Development Kit) convient aussi mais est plus long à télécharger.

Installez votre Java dans le dossier de votre choix, mettez à jour la variable « JAVA_HOME » dans josm.cmd.

Pour Linux

Créez un fichier texte nommé josm ou josm.sh, copiez-y le contenu suivant :

#! /bin/sh

#export _JAVA_OPTIONS="$_JAVA_OPTIONS -Dawt.useSystemAAFontSettings=on"
f=~/Téléchargements/josm-tested.jar 
curl -z $f -R -o $f https://josm.openstreetmap.de/josm-tested.jar
exec java -jar $f

N’oubliez pas de rendre le script exécutable avec la commande chmod +x josm (ou chmod +x josm.sh).

1 Like

C’est super tout ça !

Pour la partie Windows, peut-être qu’un script en Powershell serait plus simple, car il n’y a pas besoin d’installer curl.
…remarque, ça marche aussi sans rien installer avec le DOS sur mon ordi et celui de madame.

Merci pour ces informations.

Le méthode par cmd ne fonctionne pas chez moi, il ne se passe rien. Mais ce n’est pas grave car j’ai découvert celle avec le fichier jnlp et OpenWebstart que je ne connaissais pas. Cette dernière méthode fonctionne.

Ces derniers temps Windows bloquait l’exécution de la dernière version de JOSM pour une raison de sécurité je crois, donc je ne mettais plus à jour.

Désormais, c’est à jour et le système n’a pas râlé donc ça me convient bien !

Merci !