个人博客已经迁移到如下网站 萌萌的IT人, 后续所有的文章都会在此发布
----------------------------------------------------------------------------------
最近在处理运行一个java应用时,老是出现java.lang.OutOfMemoryError: Java heap space.即时我在环境变量里设置了JAVA_OPTS -Xmx2048m还是报错。
javaeye上搜索了一番,发现很多人都有这个疑问。经过Team Leader的指导,发现:
1、JAVA_OPTS只对tomcat/weblogic等Web服务器中间件有效,以“java -cp [*.jar] test.Main”方式运行的不会去读取JAVA_OPTS.
2、如果在运行java类,需要设置Heap Size的话,需要如下方式:
java -Xmx2048m -jar test.jar
或者java -Xmx1024m -cp douglas.jar com.douglas.Main
3、如果是在Unix或者Aix服务器上,可以直接写下如下语句
export JAVA_OPTS=-Xmx1024m -Djava.awt.headless=true
java $JAVA_OPTS -cp douglas.jar com.douglas.Main
或者vi test.sh文件,写下:
#!/bin/sh
classpath=./douglas.jar
/usr/java5/bin/java -Xmx1024M -cp $classpath com.douglas.Main
4、对于非Java语言(C++)调用Java代码,最好的方式是提供给操作员设置的页面,在申明JavaVM时,将JavaOPTS数值放置至JavaVM中。
对于JVM设置,可以查考如下配置example:
# Memory configuration
JAVA_OPTS="-server"
JAVA_OPTS="$JAVA_OPTS -Xms1280m"
JAVA_OPTS="$JAVA_OPTS -Xmx1280m"
JAVA_OPTS="$JAVA_OPTS -XX:NewSize=640m"
JAVA_OPTS="$JAVA_OPTS -XX:MaxNewSize=640m"
JAVA_OPTS="$JAVA_OPTS -XX:SurvivorRatio=5"
JAVA_OPTS="$JAVA_OPTS -XX:TargetSurvivorRatio=90"
JAVA_OPTS="$JAVA_OPTS -XX:MaxTenuringThreshold=12"
JAVA_OPTS="$JAVA_OPTS -XX:+UseConcMarkSweepGC"
JAVA_OPTS="$JAVA_OPTS -XX:+CMSIncrementalMode"
JAVA_OPTS="$JAVA_OPTS -XX:+CMSIncrementalPacing"
JAVA_OPTS="$JAVA_OPTS -XX:+CMSParallelRemarkEnabled"
JAVA_OPTS="$JAVA_OPTS -XX:+UseParNewGC"
JAVA_OPTS="$JAVA_OPTS -XX:PermSize=64m"
JAVA_OPTS="$JAVA_OPTS -XX:MaxPermSize=64m"
JAVA_OPTS="$JAVA_OPTS -XX:+UseTLAB"
# Enable class unloading (needed with ConcMarkSweepGC
JAVA_OPTS="$JAVA_OPTS -XX:+CMSClassUnloadingEnabled"
JAVA_OPTS="$JAVA_OPTS -XX:+CMSPermGenSweepingEnabled"
# debug and memory tweaks to avoid Hotspot Compiler Failure
JAVA_OPTS="$JAVA_OPTS -XX:+PrintCompilation"
JAVA_OPTS="$JAVA_OPTS -XX:CodeCacheMinimumFreeSpace=2M"
JAVA_OPTS="$JAVA_OPTS -XX:ReservedCodeCacheSize=64M"
JAVA_OPTS="$JAVA_OPTS -XX:CompileCommandFile=/my/portal/bin/hotspot_compiler"
# Enable JMX Remote Monitoring
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=9000"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.ssl=false"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.password.file=/my/portal/bin/jmxremote.password"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.access.file=/my/portal/bin/jmxremote.access"
# turn on some debug for GC only print the distribution when doing tuning
JAVA_OPTS="$JAVA_OPTS -verbose:gc"
JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCTimeStamps"
JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCDetails"
#JAVA_OPTS="$JAVA_OPTS -XX:+PrintTenuringDistribution"
JAVA_OPTS="$JAVA_OPTS -Xloggc:/my/portal/logs/portal/gc.log"
# Enable remote debugging port
JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"
相关推荐
标题中的"java JAVA_OPTS javaagent"涉及到Java应用程序的启动参数设置,特别是`JAVA_OPTS`环境变量和`javaagent`选项,这两个是Java虚拟机(JVM)启动时的关键配置项。`JAVA_OPTS`通常用于传递额外的JVM参数,如...
JAVA-OPTS 是一个变量,用于设置 JVM 相关运行参数。JVM 是 Java Virtual Machine 的缩写,表示 Java 虚拟机。JAVA-OPTS 变量的设置对 Java 应用程序的性能和稳定性具有重要影响。 在设置 JAVA-OPTS 变量时,需要...
但是,我们不建议在初学 Java 时设置 CLASSPATH 环境变量,因为它可以根据需要动态地设置。 三、PATH 环境变量 PATH 环境变量是操作系统的环境变量,它的设置内容是可执行文件的路径。例如,PATH=...;%JAVA_HOME%\...
标题“JAVA_SET_enviroment”暗示了我们讨论的主题与设置Java开发环境有关,特别是关于配置Java环境变量的步骤。在编程领域,尤其是Java开发中,正确地设置环境变量是至关重要的,因为它们指定了系统如何找到并执行...
jdk 环境变量 JAVA_HOME 批处理文件 双击搞定 最多只需修改个JAVA-HOME,其他的classpath path之类的bat文件搞定
`Catalina.bat` 是Tomcat在Windows环境下启动的批处理文件,主要负责设置环境变量、执行Java虚拟机(JVM)并加载Tomcat的核心类。解析这个脚本有助于理解Tomcat的启动过程,包括如何设置系统路径、JVM参数以及初始...
本文将详细介绍如何在Linux上安装JDK 1.6.0_01和Tomcat 6.0.16,以及配置相应的环境变量。 首先,我们需要准备两个源码包: 1. JDK:jdk-1.6.0_01-linux-i586.bin 2. Tomcat:apache-tomcat-6.0.16.tar.gz **JDK的...
本文将深入讲解Java所需的环境变量及其配置方法,包括一些可能不为人知的细节。 首先,我们需要了解三个主要的环境变量:`JAVA_HOME`, `PATH`, 和 `CLASSPATH`。 1. **JAVA_HOME**: 这个变量指定了JDK的安装目录...
- 可以将其添加到 `JAVA_OPTS` 环境变量中,以便在启动Java应用程序时自动加载。 #### 总结 综上所述,`JAVA_HOME`、`Path` 和 `classpath` 是Java环境中三个至关重要的环境变量。它们分别负责指示JDK的位置、使...
这个环境变量指定了特定软件的配置根目录,对于某些特定的应用程序来说很重要,但并不是Java开发所必需的。 **示例值:** `%SystemRoot%\ConfigSetRoot` #### 8. NUMBER_OF_PROCESSORS 该环境变量表示系统的处理器...
首先,检查`JAVA_LIBRARY_PATH`环境变量,确保它包含了OpenCV库的路径。在终端中输入`echo $JAVA_LIBRARY_PATH`查看当前设置。如果没有包含OpenCV库的位置,需要将其添加进去。 3. **安装OpenCV**: 在Ubuntu上,...
oracle官方下载,本jdk是linux版,下载后配置环境变量后可直接使用 环境变量配置 1、打开配置文件: # sudo vim /etc/profile 2、 在配置文件中写入环境变量配置,保存之后关闭: #set java environment ...
在Fedora Linux操作系统中,配置Java Development Kit (JDK) 的环境变量对于开发和运行Java应用程序至关重要。这里我们将详细介绍如何为JDK5或JDK6配置环境变量,以确保系统能够正确识别并使用这些版本的Java。 ...
`JAVA_OPTS`环境变量用于定义启动Tomcat时传递给Java虚拟机(JVM)的一系列选项。这些选项可以包括但不限于内存大小、垃圾回收策略等。 #### `-Xms64m` 该参数指定了JVM启动时分配给堆内存的初始大小为64MB。初始堆...
### Java开发中各种环境变量的配置 #### 一、引言 在Java开发环境中,正确配置环境变量对于确保开发流程的顺利进行至关重要。环境变量能够帮助操作系统定位到所需的Java资源和工具,从而使得开发者能够在任意目录下...
- **配置 JAVA_OPTS**:通过设置 JAVA_OPTS 环境变量,可以在启动 Java 应用时传递参数,例如设置 JVM 内存大小。 - **调整 JVM 参数**:可以通过修改 `%JAVA_HOME%\bin\java.exe` 的启动脚本来调整 JVM 的启动参数...
1. **通过环境变量设置**: 在 `catalina.bat` 文件前添加以下内容: ```bat set JAVA_OPTS=-Xms128m -Xmx350m ``` 重启 Tomcat 服务后,这些设置将生效。 2. **通过注册表设置**: 修改注册表键 `HKEY_LOCAL...
**Java Development Kit (JDK) 环境变量详解** 在Java编程中,JDK环境变量的正确配置是运行和开发Java程序的基础。这些环境变量指示操作系统如何找到Java的安装位置,以及如何执行相关的Java工具。以下是几个关键的...
- 在Linux系统下,可以通过编辑`{tomcat_home}/bin/catalina.sh`文件,同样修改`JAVA_OPTS`环境变量。示例命令如下: ``` JAVA_OPTS="-Xms64m -Xmx512m" ``` 或者在脚本中使用`set`命令直接设置: ``` set ...