[Pour les débutants] Lorsque vous voulez dire que l'option JVM (-D) ne fonctionne pas avec la commande java -jar, ou que la bibliothèque est boguée.

Contexte

Lors du développement d'OSS fait par Java et d'une bibliothèque fermée en interne, j'ai reçu plusieurs fois de telles demandes, donc si je l'écris au moins dans Qiita, je pense que cela se résoudra par google. Avec une faible attente.

L'enquête ressemble à ceci

modèle 1

La documentation de la bibliothèque indique que spécifier -Dxxxx = yyyy active l'option xxxx, mais cela ne fonctionne pas. La bibliothèque est-elle boguée?

Motif 2

Lors du lancement d'un jar en utilisant le Tomcat intégré (ou Jetty, etc.), j'ai ajouté -Dcom.sun.management.jmxremote et d'autres options JMX pour activer JMX, mais même si je lance l'application Le port JMX ne devient pas LISTEN.

Avez-vous besoin d'ajuster les paramètres du Tomcat intégré (ou Jetty, etc.)?

Ce n'est pas la bibliothèque ou le conteneur Servlet qui bogue

Mauvaise commande


java -jar zzzz.jar -Dxxxx=yyyy -Dcom.sun.management.jmxremote

À première vue, il semble qu'il n'y ait pas de problème, mais c'est comme suit.

Commande correcte


java -Dxxxx=yyyy -Dcom.sun.management.jmxremote -jar zzzz.jar 

En bref, il s'agit de spécifier l'argument JVM après l'option -jar: sweat:

Au fait, avec la commande java -help, l'ordre est clairement indiqué. Inutile de dire que «[options]» est une option JVM et «[args]» est un argument de ligne de commande traité par le programme.

$ java -help

comment utiliser: java [options] <mainclass> [args...]
           (Lors de l'exécution d'une classe)
Ou java[options] -jar <jarfile> [args...]
           (Lors de l'exécution d'un fichier jar)
Ou java[options] -m <module>[/<mainclass>] [args...]
       java [options] --module <module>[/<mainclass>] [args...]
           (Lors de l'exécution de la classe principale d'un module)
Ou java[options] <sourcefile> [args]
           (Lors de l'exécution d'un programme de fichier source unique)

Classe principale, fichier source,-jar <jarfile>、
 -m ou--module <module>/<mainclass>Les arguments qui suivent sont comme arguments de la classe principale
Sera adopté.

...Ci-dessous, abrégé

finalement

L'option JVM ne fonctionne pas! ?? Dans ce cas, vérifiez d'abord la commande que vous avez tapée avant de douter des autres.

Recommended Posts

[Pour les débutants] Lorsque vous voulez dire que l'option JVM (-D) ne fonctionne pas avec la commande java -jar, ou que la bibliothèque est boguée.
[WSL] Solution pour le phénomène que 404 est affiché lors de la tentative d'insertion de Java avec apt (mémo personnel)
Code utilisé lorsque vous souhaitez traiter Json avec uniquement des bibliothèques standard en Java (version améliorée) gson inutile
Turbolinks: je veux résoudre le problème que JS ne s'affiche pas correctement à moins d'être rechargé lors de la transition avec link_to
Vous devez également spécifier l'hôte lors du débogage à distance avec Java 9 ou version ultérieure
[Kotlin] La bibliothèque de mappage basée sur la réflexion basée sur Java ne fonctionne fondamentalement pas avec Kotlin.
Code à utiliser lorsque vous souhaitez traiter Json en Java avec uniquement des bibliothèques standard
Lorsque vous souhaitez implémenter des tests de bibliothèque Java avec Spock en multi-module avec Gradle dans Android Studio 3
Lorsque vous souhaitez écrire explicitement OR ou AND avec ransack
[Pour les super débutants] Les connaissances minimales que vous voulez garder à l'esprit avec les hachages et les symboles
Lorsque vous souhaitez ajouter une colonne de type chaîne avec une longueur limitée avec la commande `rails generate migration`
[Pour les débutants] Je souhaite saisir automatiquement des données pré-enregistrées dans le formulaire de saisie avec une commande de sélection.
[RSpec] Lorsque vous souhaitez utiliser la variable d'instance du contrôleur dans le test [attribuer n'est pas recommandé]
La première chose à faire lorsque vous voulez être satisfait d'Heroku sur GitHub avec Eclipse sur Java
Que faire si l'opération non autorisée s'affiche lors de l'exécution d'une commande dans le terminal
Comment interagir avec un serveur qui ne plante pas l'application
Une histoire qui a souffert d'un espace qui ne disparaît pas même s'il est taillé avec Java La cause est BOM
J'ai créé un programme qui recherche la classe cible à partir du processus surchargé avec Java