Définir plusieurs propriétés système Java en ligne de commande
Est-il un moyen plus facile de spécifier plusieurs Propriétés du Système sur la ligne de commande à un programme Java plutôt que d'avoir plusieurs D états?
En essayant d'éviter cela:
java -jar -DNAME="myName" -DVERSION="1.0" -DLOCATION="home" program.jar
Je pensais que j'avais vu un exemple de quelqu'un en utilisant un -D
et certaines chaînes entre guillemets par la suite, mais je ne trouve pas l'exemple de nouveau.
- Départ en Java 9, vous pouvez mettre une ou toutes ces options (par exemple,
-DNAME="myName" -DVERSION="1.0" -DLOCATION="home" -jar program.jar
) dans un fichier texte, puis exécuter java lanceur avec l'argument de "fichiers" de la syntaxe, par exemple,java @that_plain_text_file
.
Vous devez vous connecter pour publier un commentaire.
Réponse est NON. Vous pourriez avoir vu un exemple où quelqu'un aurait mis quelque chose comme :
-DArguments=a=1,b=2,c=3,d=4,e=cow
Puis l'application serait d'analyser la valeur de
Arguments
propriété de la chaîne pour obtenir des valeurs individuelles.Dans votre
main
vous pouvez obtenir la clé de valeurs(en Supposant que le format d'entrée est garanti):Aussi, le
-D
avant de la classe principale ou lajar
fichier dans la ligne de commande java. Exemple :java -DArguments=a=1,b=2,c=3,d=4,e=cow MainClass
Au lieu de passer les propriétés comme argument, vous pouvez utiliser un .propriétés pour les stocker.
System.getProperties().load(new FileInputStream("my.properties"))
Cependant avoir vos propres Propriétés est susceptible d'être une meilleure approche.Il n'y a rien sur le La Documentation qui mentionne au sujet de quelque chose comme ça.
Voici une citation:
SomeClass
fait référence? Je suis en train de définir cette propriété pour lire un.properties
fichier, à l'aide de Spring, Struts et Tomcat 8.5, c'est la seule partie de la commande est toujours pas clair pour moimain
méthode, donc, je pense que c'est fait dans le tomcat, propriétés, ai-je le droit?JAVA_OPTS
variable d'environnement avec les propriétés du systèmeVous pouvez être en mesure d'utiliser le
JAVA_TOOL_OPTIONS
variable d'environnement pour définir les options. Il a travaillé pour moi avec Rasbian. Voir Les Variables d'environnement et les Propriétés du Système qui a ceci à dire:Cependant cette variable d'environnement est l'utilisation peut être désactivé pour des raisons de sécurité.
Voir cet exemple montrant la différence entre spécifier sur la ligne de commande par rapport à l'aide de la
JAVA_TOOL_OPTIONS
variable d'environnement.Si les propriétés requises, il faut créer un système alors il n'y a pas d'option que D
Mais si vous avez besoin de ces propriétés, tandis que l'amorçage d'une application puis de chargement de propriétés à travers l'proerties fichiers est une meilleure option. Il ne sera pas besoin de changer de construire pour une seule propriété.