2017-08-21 2 views
1

Ma question concerne le fichier .jar. Dans mon projet, j'utilise le fichier json config, qui est chargé dans mon fichier .jar. Est-il possible de faire en quelque sorte que je peux utiliser différents fichiers de configuration? J'ai un projet fait avec des sockets serveur/client, et je sais que j'aurai beaucoup de clients, je ne veux pas créer beaucoup de client.jar pour chaque fichier de configuration, je veux utiliser un client.jar principal et le lancer par juste des fichiers de configuration différents.Est-il possible de charger différents fichiers de configuration au démarrage de .jar?

Si vous ne pouvez pas comprendre, je vais essayer d'expliquer dans l'exemple:

Peut-être qu'il est possible de faire le drapeau personnalisé ou quelque chose?

java -jar -config Client.jar example/foo/config.json 
java -jar -config Client.jar example/foo/config2.json 

et ainsi de suite ... Je suppose que quelqu'un va me aider .. :)

+0

Comment lisez-vous votre fichier de configuration? –

+0

@MauricePerry Je le charge dans mon code, mais j'ai besoin de réécrire d'une façon ou d'une autre pour le faire lire comme je l'ai dit plus haut .. – Ervinas34

+0

en utilisant des variables d'environnement par exemple. – luk2302

Répondre

1

Deux options:

  1. Transmettez le nom de fichier comme argument,
  2. Transmettez en tant que propriété du système

Option 1:

Vous courriez votre pot comme ceci:

java -jar Client.jar example/foo/config.json 

et obtenir le nom de fichier dans le premier argument de votre méthode main(String[] args).

Option 2:

Vous courriez votre pot comme ceci:

java -Dconfig=example/foo/config.json -jar Client.jar 

Et vous obtiendrez le nom du fichier en appelant System.getProperty("config").

La seconde méthode a l'avantage de laisser le nom de fichier disponible n'importe où dans votre programme, alors que le premier sur le seul le rend disponible dans votre méthode principale.

+0

Ok, c'est ce que je cherchais, mais ... première option, si je vais courir comme ça, puis-je exécuter des fichiers de configuration comme: java -jar Client.jar exemple/foo/config.json plus tard: Exemple java -jar Client.jar/foo/config2.json? et comment j'obtiendrai le nom de fichier? – Ervinas34

+0

@ Ervinas34 dans args [0], dans votre méthode principale –

+0

Merci beaucoup! C'était 100% précis de ma question! Marqué votre réponse et valide! :) – Ervinas34