java - setenv.sh 中的多行 JAVA_OPTS

标签 java tomcat7

我正在尝试在 Ubuntu 12/Tomcat 7 上设置我的 setenv.sh。 Tomcat 已经安装了 apt-get 我试图创建一个多行 JAVA_OPTS 变量,但一直遇到错误消息。

#!/bin/sh
export JAVA_OPTS="$JAVA_OPTS -server \
-Xms512m -Xmx512m"

: not foundtomcat7/bin/catalina.sh: 4: /usr/share/tomcat7/bin/setenv.sh: 
Using CATALINA_BASE:   /usr/share/tomcat7
Using CATALINA_HOME:   /usr/share/tomcat7
Using CATALINA_TMPDIR: /usr/share/tomcat7/temp
Using JRE_HOME:        /usr/lib/jvm/java-7-oracle/
Using CLASSPATH:       /usr/share/tomcat7/bin/bootstrap.jar:/usr/share/tomcat7/bin/tomcat-juli.jar
Error: Could not find or load main class

#!/bin/sh
export JAVA_OPTS="$JAVA_OPTS -server -Xms512m -Xmx512m"

: not foundtomcat7/bin/catalina.sh: 3: /usr/share/tomcat7/bin/setenv.sh: 
Using CATALINA_BASE:   /usr/share/tomcat7
Using CATALINA_HOME:   /usr/share/tomcat7
Using CATALINA_TMPDIR: /usr/share/tomcat7/temp
Using JRE_HOME:        /usr/lib/jvm/java-7-oracle/
Using CLASSPATH:       /usr/share/tomcat7/bin/bootstrap.jar:/usr/share/tomcat7/bin/tomcat-juli.jar
Invalid maximum heap size: -Xmx512m
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

我已经将它更新为这个,但是在 echo 位置只显示最后一行。

#!/bin/sh
JAVA_OPTS="$JAVA_OPTS -server -Xms704m -Xmx704m"
JAVA_OPTS="$JAVA_OPTS -XX:OnOutOfMemoryError=/usr/share/scripts/on_server_crash.sh"
JAVA_OPTS="$JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/tomcat7"
JAVA_OPTS="$JAVA_OPTS -XX:MaxPermSize=128m -XX:MaxNewSize=256m -XX:NewSize=256m"
echo $JAVA_OPTS
JAVA_OPTS="$JAVA_OPTS -XX:SurvivorRatio=12 -XX:MaxTenuringThreshold=0"
JAVA_OPTS="$JAVA_OPTS -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode"
JAVA_OPTS="$JAVA_OPTS -XX:+CMSIncrementalPacing -XX:+CMSClassUnloadingEnabled"
JAVA_OPTS="$JAVA_OPTS -XX:+CMSPermGenSweepingEnabled -XX:+DisableExplicitGC"
JAVA_OPTS="$JAVA_OPTS -XX:+UseParNewGC -XX:+UseTLAB"
JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true"
JAVA_OPTS="$JAVA_OPTS -javaagent:$NR_JAR -Dnewrelic.environment=production"
echo $JAVA_OPTS
export JAVA_OPTS

当我在没有导出选项的情况下尝试“每个命令各占一行”时,我得到“无法识别的选项 -server”

#!/bin/sh
JAVA_OPTS="$JAVA_OPTS -server"
JAVA_OPTS="$JAVA_OPTS -Xms704m"
JAVA_OPTS="$JAVA_OPTS -Xmx704m"
JAVA_OPTS="$JAVA_OPTS -XX:OnOutOfMemoryError=/usr/share/scripts/on_server_crash.sh"
JAVA_OPTS="$JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError"
JAVA_OPTS="$JAVA_OPTS -XX:HeapDumpPath=/var/log/tomcat7"
JAVA_OPTS="$JAVA_OPTS -XX:MaxPermSize=128m"
JAVA_OPTS="$JAVA_OPTS -XX:MaxNewSize=256m"
JAVA_OPTS="$JAVA_OPTS -XX:NewSize=256m"
JAVA_OPTS="$JAVA_OPTS -XX:SurvivorRatio=12"
JAVA_OPTS="$JAVA_OPTS -XX:MaxTenuringThreshold=0"
JAVA_OPTS="$JAVA_OPTS -XX:+UseConcMarkSweepGC"
JAVA_OPTS="$JAVA_OPTS -XX:+CMSIncrementalMode"
JAVA_OPTS="$JAVA_OPTS -XX:+CMSIncrementalPacing"
JAVA_OPTS="$JAVA_OPTS -XX:+CMSClassUnloadingEnabled"
JAVA_OPTS="$JAVA_OPTS -XX:+CMSPermGenSweepingEnabled"
JAVA_OPTS="$JAVA_OPTS -XX:+DisableExplicitGC"
JAVA_OPTS="$JAVA_OPTS -XX:+UseParNewGC"
JAVA_OPTS="$JAVA_OPTS -XX:+UseTLAB"
JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true"
JAVA_OPTS="$JAVA_OPTS -javaagent:$NR_JAR"
JAVA_OPTS="$JAVA_OPTS -Dnewrelic.environment=production"
echo JAVA_OPTS

最佳答案

嗯,删除了整个文件并重新创建了它,现在可以了...... 现在使用这种风格

export JAVA_OPTS="$JAVA_OPTS\
 -server\
 -Xms704m\
 -Xmx704m\
 -XX:OnOutOfMemoryError=/usr/share/scripts/on_server_crash.sh\
 -XX:+HeapDumpOnOutOfMemoryError\
 -XX:HeapDumpPath=/var/log/tomcat7\
 -XX:MaxPermSize=128m\
 -XX:MaxNewSize=256m\
 -XX:NewSize=256m\
 -XX:SurvivorRatio=12\
 -XX:MaxTenuringThreshold=0\
 -XX:+UseConcMarkSweepGC\
 -XX:+CMSIncrementalMode\
 -XX:+CMSIncrementalPacing\
 -XX:+CMSClassUnloadingEnabled\
 -XX:+CMSPermGenSweepingEnabled\
 -XX:+DisableExplicitGC\
 -XX:+UseParNewGC\
 -XX:+UseTLAB\
 -Djava.awt.headless=true\
 -javaagent:$NR_JAR\
 -Dnewrelic. environment=production"

关于java - setenv.sh 中的多行 JAVA_OPTS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14926260/

相关文章:

java - Tomcat 7.0.73 不适用于 java 9

java - 像tomcat7一样在JBoss中部署.WAR

java - 如何在 Android 中进行搜索

java - 通过接口(interface)公开单例类的正确方法

Tomcat 连接池 - tomcat 7

java - 如何处理java.lang.Exception : Socket bind failed: [730013] exception

tomcat端口关闭

java - 可编辑 JCombobox mouseclicked 事件不起作用

java - 在java中读取属性文件时出现文件未找到错误

java - 如何在一行中替换多个字符串?