Info sur JMRI:
Outils de Développement
Structure
Techniques et Standards
Comment Faire
Infos Fonctionnelles
Contexte Infos

Scripts de Démarrage JMRI

Bien que JMRI lui-même soit construit pour "fonctionner partout", démarrer une application JMRI nécessite des commandes qui sont spécifiques au type particulier d'ordinateur utilisé. Avec chaque distribution JMRI, nous fournissons les scripts, des kits d'applications ou de fichiers batch pour s'occuper des détails à votre place. Bien sûr, vous pouvez les modifier ou créer les vôtres.

Cette page fournit des informations sur les outils fournis avec les distributions JMRI sur:

Si vous mettez à jour toutes ces choses, s'il vous plaît envisager soit de faire votre changement sur les autres machines (et de le tester!) soit au moins mettre un commentaire dans les autres pour décrire comment ils diffèrent maintenant.

Durant le démarrage, JMRI obtients des informations supplémentaires de plusieurs sources:

Linux

La distributions JMRI pour Linux contient les scripts shell (bash) pour chacune des applications principales: DecoderPro, PanelPro, etc Ils sont tous structurés de la même façon.

Détails

Dans cette section, nous décrivons brièvement ce que fait chaque section du script.
CLASSNAME
Pour rendre le script plus facile à maintenir, le nom de la principale classe est défini au début.
Debug setting
Si le symbole DEBUG est réglé sur tout, le script va produire des sortie de débogage après chaque section.
Directory
Pour s'exécuter, JMRI doit être en mesure de trouver des choses dans le répertoire courant. Cette étape vise à définir ce répertoire automatiquement.

Si la variable d'environnement JMRI_HOME est définie et pointe vers un répertoire qui contient un fichier jmri.jar, changez le répertoire courant pour là.

Sinon, changez le répertoire courant à l'endroit où le fichier de script est situé.

Library Files
La bibliothèque RXTX Serial nécessite certaines bibliothèques natives spécifiques des plate-formes afin d'interfacer les pilotes des ports série. Les applications JMRI ont besoin d'utiliser la version de la bibliothèque qui est correcte pour le système d'exploitation et l'architecture du processeur.

Le deux architectures les plus courantes à cette époque sont i386 et x86_64, respectivement le 32 bits d'Intel et 64 bits Intel AMD/Intel systèmes.

Les scripts de démarrage utilisent certaines applications courantes (arc, uname) pour déterminer le système d'exploitation actuel et son architecture, puis mettre en place le chemin de bibliothèque correcte pour Java pour trouver le bon fichier de bibliothèque partagée.

Classpath
Le script construit le classpath Java automatiquement pour contenir, dans l'ordre:
  • fichiers de classe dans le répertoire courant
  • fichiers de classe dans le sous-répertoire classe du répertoire courant
  • fichiers de classe dans le sous-répertoire java/class du répertoire courant
  • tous les fichiers jar dans le répertoire courant, sauf jmri.jar
  • jmri.jar dans le répertoire courant
  • tous les fichiers jar dans le répertoire lib du répertoire courant

Cela vous permet de déposer des fichiers jar dans le répertoire d'installation JMRI pour le mécanisme plug-in JMRI.

Configuration File
S'il y a un argument pour le script, il sera utilisé comme nom du fichier preference pour configurer le programme au démarrage. Si l'utilisateur enregistre les préférences du programme, elles iront aussi dans ce dossier.

Si aucun argument n'est fourni, le nom du fichier de configuration est fait à partir du nom du script, suivi de "Config2.xml". Par exemple, le script DecoderPro utilise DecoderProConfig2.xml comme fichier preferences. Si une copie de ce script est nommé MyJmriApp, il utilisera un fichier preferences nommé MyJmriAppConfig2.xml.

Cela vous permet de créer autant de configurations spécialisées que vous souhaitez simplement en la copiant et en renommant un script de démarrage.

Java Option
Le programme définit un certain nombre d'options pour le JVM. Cela comprend les paramètres nécessaires au programme, fixant les limites de la mémoire, et divers symboles pour contrôler le fonctionnement
Alternate port names
RXTX ne connaît pas les noms de certains des ports série connectés via USB. Cette section cherche quelques noms connus et les ajoute au programme si elle est présente. Si vous avez un nom de fichier de périphérique que JMRI ne trouve pas, vous pouvez définir la variable d'environnement JMRI_SERIAL_PORTS pour être une liste de noms séparé par des virgules.
Java command
Enfin, le script met tout cela ensemble dans une commande java, qui l'exécute.

Mac OS X

Les Distributions JMRI pour Mac OS X contiennentt des groupements d'applications pour chacune des applications principales: DecoderPro, PanelPro, etc Ceux-ci fournissent des icônes d'application familières pour l'utilisateur.

Pour enregistrer les groupements avec Mac OS X, ils doivent être copiés depuis l'image disque distribuée sur le disque de dur de l'utilisateur.

Détails des Scripts

Chaque Groupement a un script shell de démarrage (Bash) dans le répertoire Contents/Mac OS X qui fait le démarrage actuellement. C'est le même script que celui utilisé pour Linux, voir SVP cette section pour les détails.

Windows

Jusqu'à et y compris la version JMRI 2.3.2, le fichiers Windows.bat créé juste une commande java définie et l'exécute.
Depuis la version JMRI 2.3.3, le fichier individuel Windows.bat appelle maintenant un petit lanceur application, LaunchJMRI.exe.

Détails de la Ligne de Commande

Dans cette section, nous décrivons brièvement les options de la ligne de commande et les paramètres du lanceur d'application.
/debug ( facultatif - depuis JMRI 2.5.1 )
Si cette option est définie sur la ligne de commande, une fenêtre s'ouvre qui affiche diverses informations utiles à des fins de débogage.
/noisy ( facultatif - depuis JMRI 2.5.1 )
Si cette option est définie sur la ligne de commande, le lanceur ne cherche pas à minimiser la fenêtre de la console Java à partir de JMRI 2.5.1, le comportement par défaut est de minimiser la fenêtre de la console Java.
à partir du JMRI 2.11.1, le comportement de cette option a changé-celle-ci détermine maintenant si la fenêtre de la console Java est activée ou non. Les messages systèmes sont maintenant disponibles via l'option "Aide > Console Système ... " du menu dans la fenêtre principale JMRI.
/32bit ( facultatif - depuis JMRI 2.99.4 )
Si cette option est précisée dans la ligne de commande, le lanceur forcera l'utilisation du Java Run Time 32 bits sur les machines 64 bits. cette option est sans effets sur les machines 32 bits
/profile <profileID> ( facultatif - depuis JMRI 3.7.1 ) Si cette option est précisée dans la ligne de commande, le lanceur utilisera le profil <profileID> comme le profil de configuration de JMRI pour l'utiliser au lieu de celui par défaut.
Paramètre Classe
Le premier paramètre de LaunchJMRI.exe, après l'une des options ci-dessus, est le nom de la classe principale à exécuter.
Un exemple pour lancer DecoderPro serait "apps.DecoderPro.DecoderPro"
Paramètre du fichier de configuration ( facultatif )
S'il y a un second argument au lanceur, il sera utilisé comme le nom du fichier preferences utilisé pour configurer le programme au démarrage. Si l'utilisateur enregistre les preferences du programme, elles iront aussi dans ce dossier.
Si aucun argument n'est fourni, le nom du fichier de configuration est par défaut dans l'application. Par exemple, l'application DecoderPro utilise DecoderProConfig2.xml comme un fichier preferences. Si le lanceur est appelée par 'LaunchJMRI.exe apps.DecoderPro.DecoderPro MyJmriAppConfig2.xml ', il va utiliser un fichier preferences nommé MyJmriAppConfig2.xml.
Cela vous permet de créer autant de configurations spécialisées que vous souhaitez en créant un nouveau Menu de Démarrage et/ou un raccourci de Bureau pour le fichier 'LaunchJMRI.exe " et en ajoutant le fichier preferences en tant que paramètre.

Variables d'environment

Comme depuis la version JMRI 2.11.4, il est possible d'influencer les paramètres utilisés pour lancer JMRI via l'utilisation de Variables d'Environnement.
Les Variables d'Environnement utilisées sont:

JMRI_HOME
Ceci détermine l'emplacement du programme
JMRI_OPTIONS
Ceci spécifie des options JVM supplémentaires
JMRI_PREFSDIR
Ceci spécifie l'emplacement d'un répertoire preferences alternatif
JMRI_USERHOME
Ceci spécifie l'emplacement d'un répertoire home utilisateur alternatif
Si les deux JMRI_PREFSDIR et JMRI_USERHOME sont définis, l'emplacement défini par JMRI_PREFSDIR aura préséance sur l'emplacement défini par JMRI_USERHOME pour déterminer l'emplacement du fichier preferences.

Détails du Lanceur

Dans cette section, nous décrivons brièvement ce que fait le lanceur d'application.
Directory
Pour s'exécuter, JMRI doit être en mesure de trouver des choses dans le répertoire courant. Cette étape change le répertoire courant à l'endroit où le lanceur se trouve.
Java options
Le lanceur fixe un certain nombre d'options pour la JVM. Ceci inclut les paramètres nécessaires au programme, fixant des limites de la mémoire, et divers symboles pour contrôler le fonctionnement.
Classpath
Le script construit le Classpath Java automatiquement pour contenir, dans l'ordre:
  • fichiers de classe dans le répertoire courant
  • fichiers de classe dans le sous-répertoire classes du répertoire courant
  • tous les fichiers jar dans le répertoire courant, sauf jmri.jar
  • jmri.jar dans le répertoire courant
  • tous les fichiers jar dans le sous-répertoire lib du répertoire courant
Ceci vous permet de déposer des fichiers jar dans le répertoire d'installation pour le mécanisme plug-in de JMRI.
Commande Java
Enfin, le lanceur met tout cela ensemble dans une commande java, laquelle elle est exécutée.

Raccourcis du Menu Démarrer et les Icônes du Bureau

Dans une installation de JMRI par défaut, un certain nombre de raccourcis sont créés dans le Menu Démarrer, avec les icônes du Bureau pour DecoderPro et PanelPro.

Raccourcis du Menu Démarrer

Tous les raccourcis du menu Démarrer JMRI sont placés dans le dossier menu démarrer (ou sous-dossiers) "JMRI" dans la structure suivante: Des icônes supplémentaires peuvent être placées dans cette structure en fonction des options choisies lors de l'installation et de la version de JMRI installée..

Exemple des raccourcis de Menus Démarrer pour DecoderPro (en supposant que JMRI est installé dans l'emplacement par défaut "C: \Program Files\JMRI"):

Nom du raccourci
'Tous les utilisateurs' sur Windows 2000 et XP - C:\Documents and Settings\All Users\Start Menu\Programs\JMRI\DecoderPro.lnk
'Tous les utilisateurs' sur Windows Vista et 7 - C:\ProgramData\Microsoft\Windows\Start Menu\Programs\JMRI\DecoderPro.lnk
'Utilisateur actuel' sur Windows 2000 et XP - C:\Documents and Settings\[username]\Start Menu\Programs\JMRI\DecoderPro.lnk
'Utilisateur actuel' sur Windows Vista et 7 - C:\Users\[username]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\JMRI\DecoderPro.lnk
Cible
"C:\Program Files\JMRI\LaunchJMRI.exe" apps.gui3.dp3.DecoderPro3
(up to version 3.11.x was: "C:\Program Files\JMRI\LaunchJMRI.exe" apps.DecoderPro.DecoderPro)
Démarrer dans
"C:\Program Files\JMRI"
Touche Raccourcie
Terminé
Exécuter
Fenêtre normale
Commentaire
Démarrer DecoderPro
Icône
"C:\Program Files\JMRI\decpro5.ico"

Les Icônes du Bureau

Les Icônes de bureau pour DecoderPro et PanelPro sont créées dans l'installation par défaut - au moment de l'installation une icône peut également être créée sur le bureau en option pour l'application SoundPro.

La structure de création des Icônes du bureau est semblable à celle des raccourcis du menu Démarrer ci-dessus - les exemples des Icônes du Bureau pour DecoderPro (en supposant encore que JMRI est installé dans l'emplacement par défaut "C:\Program Files\JMRI"):

Shortcut name
'Tous les utilisateurs' sur Windows 2000 et XP - C:\Documents and Settings\All Users\Desktop\DecoderPro.lnk
'Tous les utilisateurs' sur Windows Vista et 7 - C:\Users\Public\Desktop\DecoderPro.lnk
'Utilisateur courant' sur Windows 2000 et XP - C:\Documents and Settings\[username]\Desktop\DecoderPro.lnk
'Utilisateur courant' sur Windows Vista et 7 - C:\Users\[username]\Desktop\DecoderPro.lnk
Target
"C:\Program Files\JMRI\LaunchJMRI.exe" apps.DecoderPro.DecoderPro
Start In
"C:\Program Files\JMRI"
Shortcut Key
None
Run
Normal window
Comment
Start DecoderPro
Icon
"C:\Program Files\JMRI\decpro5.ico"

Récupération des versions antérieures de DecoderPro à 4.0.x

Le DecoderPro qui existait précédemment à la version 4.0.x a été enlevé des paquet de distribution et "DecoderPro 3" a été promu pour être la seule version DecoderPro disponible.

Si vous ne voulez absolument pas la nouvelle interface utilisateur DecoderPro ( affichage inventaire ), nous suggérons une des méthodes suivantes:

  1. En utilisant PanelPro avec le script: à l'exception d'une icône différente et différents boutons fixés sur la fenêtre principale, PanelPro a une interface utilisateur identique à l'ancien DecoderPro.
    • Vous pouvez ajouter les 3 boutons fixes ( Ouvrir Inventaire, Mode Service, Mode Exploitation ) utilisés pour être sur DecoderPro en ajoutant un script au démarrage.
    • Allez à Édition --> Preferences --> Démarrage --> Ajouter -->Ajouter Script. Sélectionnez le fichier "C:\Program Files\JMRI\jython\jython/MakeOriginalDecoderPro.py"
    • Puis sauvegarder et redémarrer.
  2. Utilisation de PanelPro avec des boutons:
    • Vous pouvez ajouter plusieurs boutons fixes de votre choix sur l'interface PanelPro.
    • Allez à Édition --> Preferences --> Démarrage --> Ajouter --> Ajouter Bouton. Sélectionnez l'action de votre choix. Répéter pour autant de boutons que vous voulez.
    • Pour les mêmes boutons que sur l'ancien DecoderPro, sélectionner "Ouvrir Inventaire", "DecoderPro Mode Service", "DecoderPro Mode Exploitation"
    • Puis sauvegarder et redémarrer.
  3. Ajout d'un raccourci personnalisé au DecoderPro antérieur:
    • Copiez et Collez le raccourci "DecoderPro" ( sur votre bureau ou dans le menu démarrage )
    • Renommez la copie en "DécoderPro Ancien" ( ou autre chose de votre choix mais pas "DecoderPro"
    • Sur le nouveau raccourci, clic droit -->Propriétés
    • Dans la cible, remplacez l' existant par: "C:\Program Files\JMRI\LaunchJMRI.exe" apps.DecoderPro.DecoderPro
    • Ceci lancera l'interface de l'ancien DecoderPro