java en cours d'exécution avec la variable env de JAVA_OPTS n'a pas d'effet
-
18-09-2019 - |
Question
Dans un script shell, j'ai la variable d'environnement JAVA_OPTS (pour activer le débogage à distance et augmenter la mémoire), puis j'exécute le fichier jar comme suit:
export JAVA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8001,server=y,suspend=n -Xms512m -Xmx512m"
java -jar analyse.jar $*
Mais il semble qu'il n'y a pas d'effet de la variable env de JAVA_OPTS que je ne peux pas se connecter à débogage à distance et je ne vois aucun changement dans la mémoire de la machine virtuelle Java.
Quel pourrait être le problème?
PS: Je ne peux pas utiliser ces paramètres dans la commande java -jar analyse.jar $*
parce que je processus arguments de ligne de commande dans l'application.
La solution
Je ne connais pas de JVM qui vérifie en fait la variable d'environnement JAVA_OPTS
. Habituellement, cela est utilisé dans les scripts qui lancent la machine virtuelle Java et ils généralement il suffit d'ajouter à la ligne de commande java
.
L'essentiel de comprendre ici est que les arguments à java
qui viennent avant le bit -jar analyse.jar
n'affectera la machine virtuelle Java et pas être transmis à votre programme. Ainsi, la modification de la ligne de java
dans votre script:
java $JAVA_OPTS -jar analyse.jar $*
devrait "juste".
Autres conseils
Vous pouvez _JAVA_OPTIONS
de configuration au lieu de JAVA_OPTS
. Cela devrait fonctionner sans $_JAVA_OPTIONS
.