Java Tomcat不一致性+;设置路径的不确定性 背景

Java Tomcat不一致性+;设置路径的不确定性 背景,java,linux,jvm,amazon-ec2,tomcat6,Java,Linux,Jvm,Amazon Ec2,Tomcat6,由于这是我发布的第一个问题,我将尽可能地对其进行分解,对于任何不正确的格式,我深表歉意。我还应该指出,我对Linux、Tomcat和Java都是全新的(都是在过去几周内),所以如果你有答案,请尽可能地沉默。谢谢 这个问题实际上是几个问题,但我觉得这些问题在某种程度上是相关的,所以我将把它们全部包括在内。至于我的环境,我正在运行一个EC2 Amazon Linux实例。使用返回的详细信息 cat/proc/version是: Linux版本2.6.35.14-97.44.amzn1.x86_64

由于这是我发布的第一个问题,我将尽可能地对其进行分解,对于任何不正确的格式,我深表歉意。我还应该指出,我对Linux、Tomcat和Java都是全新的(都是在过去几周内),所以如果你有答案,请尽可能地沉默。谢谢

这个问题实际上是几个问题,但我觉得这些问题在某种程度上是相关的,所以我将把它们全部包括在内。至于我的环境,我正在运行一个EC2 Amazon Linux实例。使用返回的详细信息
cat/proc/version
是:

  • Linux版本2.6.35.14-97.44.amzn1.x86_64 (mockbuild@build-31006.建造工程)
  • (gcc版本4.4.5 20110214(红帽4.4.5-6)(gcc)
java-version
给了我:

  • java版本“1.6.0_29”java(TM)SE运行时环境(构建 1.6.0_29-b11)
  • Java HotSpot(TM)64位服务器虚拟机(构建20.4-b02,混合模式)
问题
  • 什么允许我有时停止/重新启动Tomcat,但不允许 其他?在我更改配置参数并需要重新启动后 Tomcat,我使用
    /etc/init.d/tomcat6 restart
    服务tomcat6
    重新启动
    会获得不同程度的成功:有时是漂亮的绿色 好的,其他红色的失败了。似乎没有押韵或理由 为什么它有时有效,而其他的不起作用。当它不起作用时,我检查 带有
    服务的状态为tomcat6 status
    ,这会产生一些结果 比如说,tomcat6(pid)正在运行 Putty SSH会话在任何时候都会显著减慢 我无法阻止Tomcat。我必须等待每一次按键被处理
  • 我不能使用任何JVM特定的-XX参数。我得到一个错误 每次的都无法创建Java虚拟机。的 我读过的线程中,大多数都是围绕堆内存分配的 问题,但我认为这不是我的问题,因为当我运行
    java时
    -XX
    ,它应该给我一个可用命令的列表,就像java-X一样,我只得到:

    无法识别的选项:-XX无法创建Java虚拟机。

  • 我应该注意的是,我在这个操作系统上至少有两个版本的Java——它与开放JDK一起提供,但我需要Sun Java,因为这是在Geoserver中推荐的性能(这是我学习所有这些的全部要点).我读到有两个版本不是问题,只要我的JAVA_主路径指向正确的目录,但它是否仍可能以某种方式查看原始配置中的某些内容?这就是我的想法,因此为了排除它,我执行了一个
    yum remove JAVA
    ,删除了原始版本(由于依赖关系,我会和Tomcat一起运行,但不管怎样,我可以稍后将其取回),运行
    java-version
    ,以确保我仍然拥有我想要的版本。我这样做了,然后运行
    java-XX
    ,希望它在清除不需要的OpenJDK后神奇地修复自己,但不,与以前一样的错误

    结论 我现在假设旧路径没有问题。我还尝试在每个可能的位置将JAVA_HOME变量更改为适当的路径(/usr/JAVA/jre1.6.0_29):

    • 在bash_配置文件中
    • 在巴什尔
    • java.conf
    • tomcat6.conf(也就是说,在我删除Tomcat之前)
    • 可能是其他文件,真的很模糊
    • 在shell中导出JAVA\u HOME
    …除了使用
    export JAVA_HOME=/usr/JAVA/jre1.6.0_29
    之外,所有这些都没有任何影响。每次运行
    echo$JAVA_HOME
    时,我仍然会得到原始的JAVA_HOME路径,我很确定这不是我想要的。即使重置变量成功(通过在shell中导出)我还尝试设置一些JAVA_OPTS参数,特别是内存设置,然后运行了一个
    echo$JAVA_OPTS
    ,但没有返回任何结果


    我已经在这上面花了整整两天的时间,准备放弃。如果可能的话,我真的很想避免重新安装和重新配置一大堆东西,更不用说我甚至不知道这是否能解决我的问题,但我真的很想知道我为什么会有这些问题,以及它们是否相关,所以如果你们中的任何人如果您对我的错误操作有任何建议,请告诉我。谢谢!

    我无法帮助您解决第一个问题,但关于您的第二个问题:“我无法使用任何JVM特定的-XX参数。”

    tomcat在启动JVM时使用环境变量CATALINA_OPTS。因此,如果希望使用512mb堆和128mb perm gen空间,可以在bash shell上发出以下命令,使用一些自定义java选项启动tomcat

    #> CATALINA_OPTS="$CATALINA_OPTS -Xmx512m -XX:MaxPermSize=128m" $TOMCAT_HOME/bin/catalina.sh run
    
    您还可以通过在tomcat的启动脚本中更改CATALINA_选项来更改默认参数,也可以将参数添加到您的环境中(例如$HOME/.bashrc)


    希望这会有所帮助。

    我不能在第一个问题上帮助您,但在第二个问题上:“我不能使用任何JVM特定的-XX参数。”

    tomcat在启动JVM时使用环境变量CATALINA_OPTS。因此,如果希望使用512mb堆和128mb perm gen空间,可以在bash shell上发出以下命令,使用一些自定义java选项启动tomcat

    #> CATALINA_OPTS="$CATALINA_OPTS -Xmx512m -XX:MaxPermSize=128m" $TOMCAT_HOME/bin/catalina.sh run
    
    您还可以通过在tomcat的启动脚本中更改CATALINA_选项来更改默认参数,也可以将参数添加到您的环境中(例如$HOME/.bashrc)

    希望这会有所帮助。

    不是答案(因此评论),但是……您可能有兴趣知道,在Linux上,安装Java不需要root。例如,我从来没有在Linux上以root身份安装Java。这可能会帮助您更清楚地了解(您不会看到)