comment configurer JAVA OPTS pour Tomcat dans Windows?

je suis en train de définir JAVA_OPTS pour Tomcat sur une machine Windows, mais je continue à avoir une erreur si j'ajoute plus d'une variable.

Par exemple, ceci fonctionne:

set JAVA_OPTS="-Xms512M"

Mais cela ne fonctionne pas:

set JAVA_OPTS="-Xms512M -Xmx1024M"

Il entraîne l'erreur:

Invalid initial heap size: -Xms512M -Xmx1024M
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

C'est comme si je pouvez définir une variable (-Xmx fonctionnera aussi), mais pas plusieurs.

j'utilise les instructions setenv.bat fichier et mon Tomcat est 7.0.35.

24
demandé sur Ahmed Ashour 2013-02-06 18:13:44

7 réponses

Apparemment, la forme correcte est sans l' ""

Comme suit:

set JAVA_OPTS=-Xms512M -Xmx1024M
29
répondu wannabeartist 2018-05-17 09:39:28

Pour Windows, dans le cas où la valeur de la variable a de l'espace (" " ), la bonne façon est en fait de placer des guillemets (") avant le nom de la variable comme:

set "JAVA_OPTS=-Xms512M -Xmx1024M"
23
répondu Gaurav Fotedar 2014-09-10 15:00:08

j'ai comme une combinaison de Gaurav et user2550946 la réponse de mieux, mais voudrais ajouter deux autres aspects:

  1. Ne pas utiliser JAVA_OPTS, au lieu d'utiliser CATALINA_OPTS. Ceci sera utilisé uniquement pour démarrer tomcat, et non pour l'arrêter. Typiquement, vous voulez plus de mémoire au démarrage de tomcat, mais le processus d'arrêt (qui tourne juste en haut, dit à tomcat de s'arrêter et puis se termine à nouveau) n'a pas besoin de ressources spécifiquement ajustées. En fait, l'arrêt peut encore échouer si certains une quantité ridicule de mémoire n'est plus disponible à partir de L'OS.

  2. sur les systèmes de production, ma recombinaison est de réclamer immédiatement la mémoire maximale autorisée. Parce que si vous prévoyez que la mémoire sera nécessaire tôt ou tard, vous ne voulez pas découvrir qu'elle n'est pas disponible à 3 heures du matin dans la nuit - plutôt quand vous démarrez le serveur. Ainsi, set -Xmx et -Xms valeur dans les systèmes de production. (Cela rend mon aspect 1 égal plus pertinent)

Ou, dans une ligne, voici ma recommandation:

set "CATALINA_OPTS=%CATALINA_OPTS% -Xms1024M -Xmx1024M"
8
répondu Olaf Kock 2014-07-14 10:20:39

set JAVA_OPTS=%JAVA_OPTS% -Xms512M -Xmx1024M
8
répondu user2550946 2014-09-10 14:59:35

il est recommandé de créer un fichier nommé setenv.chauve-souris et le placer dans le répertoire bin de Tomcat. Avec ce fichier (qui est dirigé par le catalina.bat et catalina.sh scripts), vous pouvez modifier les paramètres D'environnement Tomcat suivants avec la variable JAVA_OPTS:

vous pouvez définir la taille minimale et maximale du tas de mémoire avec le

paramètres JVM-Xms et-Xmx.

les meilleures limites dépendent de nombreuses conditions, telles que: les transformations que L'intégrateur ETL devrait exécuter. Pour les transformations de découverte D'Information, un maximum de 1 Go est recommandé. Par exemple, pour définir la taille minimale du tas à 128 Mo et la taille maximale du tas à 1024 Mo, utilisez

JAVA_OPTS=-Xms128m -Xmx1024m        

vous devez définir la limite maximale de L'espace mémoire PermGen (Permanent Generation) à une taille plus grande que la valeur par défaut. La valeur par défaut de 64 Mo n'est pas suffisante pour les applications d'entreprise. Une limite de mémoire appropriée dépend de divers critères, mais 256 MB ferait un bon choix dans la plupart des cas. Si le maximum D'espace PermGen est trop bas, des erreurs D'espace OutOfMemoryError: PermGen peuvent se produire. Vous pouvez définir la limite maximale de PermGen avec le paramètre JVM suivant

    -XX:MaxPermSize=256m

pour des raisons de performance, il est recommandé que l'application soit exécutée en mode serveur. Apache Tomcat ne s'exécute pas en mode serveur par défaut. Vous pouvez définir le mode serveur en utilisant le paramètre JVM-server. Vous pouvez définir le paramètre JVM dans la variable JAVA_OPTS variable d'environnement dans le fichier setenv.

The following is an example of a setenv.bat file:

set "JAVA_OPTS=%JAVA_OPTS% -Xms128m -Xmx1024m -XX:MaxPermSize=256m -server"
4
répondu Harsh 2015-02-28 10:01:24

c'est parce que, la quantité de mémoire que vous souhaitez assigner pour JVM n'est pas disponible ou peut être que vous assignez plus de mémoire disponible. Essayez la petite taille, puis vous pouvez voir la différence.

À essayer:

set JAVA_OPTS=-Xms128m -Xmx512m -XX:PermSize=128m
1
répondu hourago 2018-05-17 09:38:55
SET JAVA_HOME=C:\Applications\java\java_8
SET PATH=%PATH%;C:\Applications\java\java_8\bin
SET JAVA_OPTIONS=-d64 -Xms128g -Xmx128g
0
répondu TIMS 2016-10-11 10:13:50