修改java启动参数_如何修改jvm启动参数

用java命令查看。

用java -option进行修改参数。

还有tomcat,eclipse启动时通过配置文件加载的。

详细如下:

安装Java开发软件时,默认安装包含两个文件夹,一个JDK(Java开发工具箱),一个JRE(Java运行环境,内含JVM),其中JDK内另含一个JRE。如果只是运行Java程序,则JRE已足够;而JDK则只有开发人员才用到。

一、配置JVM内存

1.配置JVM内存的参数

-XmxJavaHeap最大值,默认值为物理内存的1/4,最佳设值应该视物理内存大小及计算机内其他内存开销而定;

-XmsJavaHeap初始值,Server端JVM最好将-Xms和-Xmx设为相同值,开发测试机JVM可以保留默认值;

2.如何配置JVM内存分配:

(1)当在命令提示符下启动并使用JVM时(只对当前运行的类生效)

java-Xmx128m-Xms64m-Xmn32m-Xss16mTest

(2)当在集成开发环境下(如eclipse)启动并使用JVM时:

第一种设置方法:

在eclipse根目录下打开eclipse.ini,默认内容为(这里设置的是运行当前开发工具的JVM内存分配):

-vmargs-Xms40m-Xmx256m-vmargs表示以下为虚拟机设置参数,可修改其中的参数值,,另外,eclipse.ini内还可以设置非堆内存,如:-XX:PermSize=56m,-XX:MaxPermSize=128m。

此处设置的参数值可以通过以下配置在开发工具的状态栏显示:

在eclipse根目录下创建文件options,文件内容为:org.eclipse.ui/perf/showHeapStatus=true

修改eclipse根目录下的eclipse.ini文件,在开头处添加如下内容:

-debugoptions-vmjavaw.exe重新启动eclipse,就可以看到下方状态条多了JVM信息。

第二种设置方法:

打开eclipse-窗口-首选项-Java-已安装的JRE(对在当前开发环境中运行的java程序皆生效)

编辑当前使用的JRE,在缺省VM参数中输入:-Xmx128m-Xms64m-Xmn32m-Xss16m

第三种设置方法:

打开eclipse-运行-运行-Java应用程序(只对所设置的java类生效)

选定需设置内存分配的类-自变量,在VM自变量中输入:-Xmx128m-Xms64m-Xmn32m-Xss16m

注:如果在同一开发环境中同时进行了第二种和第三种设置,则第二种设置生效,第三种设置无效,如:

开发环境的设置为:-Xmx256m,而类Test的设置为:-Xmx128m-Xms64m,则运行Test时生效的设置为:

-Xmx256m-Xms64m

(3)当在服务器环境下(如Tomcat)启动并使用JVM时(对当前服务器环境下所以Java程序生效):

a.设置环境变量:

变量名:CATALINA_OPTS

变量值:-Xmx128m-Xms64m-Xmn32m-Xss16m

b.打开Tomcat根目录下的bin文件夹,编辑catalina.bat,将其中的%CATALINA_OPTS%(共有四处)替换为:-Xmx128m-Xms64m-Xmn32m-Xss16m

二、查看配置JVM内存信息

Runtime.getRuntime().maxMemory();//最大可用内存,对应-Xmx

Runtime.getRuntime().freeMemory();//当前JVM空闲内存

Runtime.getRuntime().totalMemory();//当前JVM占用的内存总数,其值相当于当前JVM已使用的内存及freeMemory()的总和

关于maxMemory(),freeMemory()和totalMemory():

maxMemory()为JVM的最大可用内存,可通过-Xmx设置,默认值为物理内存的1/4,设值不能高于计算机物理内存;

totalMemory()为当前JVM占用的内存总数,其值相当于当前JVM已使用的内存及freeMemory()的总和,会随着JVM使用内存的增加而增加;

freeMemory()为当前JVM空闲内存,因为JVM只有在需要内存时才占用物理内存使用,所以freeMemory()的值一般情况下都很小,而JVM实际可用内存并不等于freeMemory(),而应该等于maxMemory()-totalMemory()+freeMemory()。及其配置JVM内存分配。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/267063.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

非常完善的Log4net详细说明(转)

最可能来源:https://blog.csdn.net/ydm19891101/article/details/50561638 其它转载者:http://www.cnblogs.com/zhangchenliang/p/4546352.html 1、概述 log4net是.Net下一个非常优秀的开源日志记录组件。log4net记录日志的功能非常强大。它可以将日志分…

话说招聘面试

最近公司有一个新项目,是一个软件和硬件结合的项目,具体的就是一个cs软件通过485通信操作硬件的基站,基站上面挂着传感器和其他设备, 当然我只负责软件也就是上位机部分。通过1个月多的时间,每天开会开会调研调研&…

mysql内链接与交叉连接_SQLServer 2008中的交叉连接与内部连接

这里是交叉连接和内部连接的最佳示例。考虑下表表:Teacherx------------------------x| TchrId | TeacherName |x----------|-------------x| T1 | Mary || T2 | Jim |x------------------------x表:Studentx-------------…

获得数据库中表字段的名字.txt

获得数据库中所有数据库的名字:select name From sysdatabases 获得某个数据库中所有表的名字:select name from sysobjects where typeU获得某个表中字段的名字:select name from syscolumns where idobject_id(表名)use masterif exists(S…

java pause_java – 更有效的暂停循环方式

可用的工具是:等待/通知 – 我们都试图摆脱这个古老的系统.信号量 – 一旦你的线程抓住它,你持有它直到释放,所以再次抓住它不会阻止.这意味着您无法在自己的线程中暂停.CyclicBarrier – 每次使用时都必须重新创建.ReadWriteLock – 我的最爱.您可以让任意多个线程…

jmeter java接口_JMeter接口Java开发五步曲

想做jmeter接口二次开发但不知道如何入手,要解决这个问题,我们可以分为5个步骤第一步:了解jmeter处理java请求的流程第二步:通过实现jmeter中的接口JavaSamplerClient编写自定义JAVA接口第三步:打包第四步:…

循环

# l []# for x in range(3,10):# #pass# l.append(x)# print(x,:,l)# print(l)#break/continue(break:终止。continue:继续)#list [1,2,3,4] #遍历# for x in list:# if x 3:# print(x,#*20)# break #终止当前循环# else:# pr…

Redhat ssh服务登录慢

redhat在安装以后每次通过ssh服务登录,要等待几秒才能进入。 只要在sshd_config修改一下以下值就好 vim /etc/ssh/sshd_config UseDNS no service sshd restart 再次用ssh终端登录就快了转载于:https://www.cnblogs.com/passedbylove/p/9070405.html

console程序也有版本和图标

控制台程序的版本和图标创建和编辑 最近项目要做一个能够支持批处理的文件转换工具,根据应用环境的需要,用VC6做了一个基于Console的程序,等程序做完了,突然发现需要给这个程序指定版本,一时还真有些迷糊。从来做控制台…

java面向对象语言_Java到底是不是一种纯面向对象语言?

英文原文:Why Java Is a Purely Object-Oriented Language Or Why NotJava是否确实是 “纯面向对象”?让我们深入到Java的世界,试图来证实它。在我刚开始学习Java的前面几年,我从书本里知道了Java是遵循“面向对象编程范式(Object…

Python--DBUtil

Python--DBUtil包 1 简介 DBUtils是一套Python数据库连接池包,并允许对非线程安全的数据库接口进行线程安全包装。DBUtils来自Webware for Python。 DBUtils提供两种外部接口: PersistentDB :提供线程专用的数据库连接,并自动管理…

java calendar计时器_Java Calendar setTimeInMillis()用法及代码示例

Calendar类中的setTimeInMillis(long mill_sec)方法用于根据传递的long值设置由此Calendar表示的Calendars时间。用法:public void setTimeInMillis(long mill_sec)参数:该方法采用long类型的一个参数mill_sec,表示要设置的给定日期。返回值:…

找出两个字符串数组中的相同元素

public static List<String> getAllSameElement1(String[] strArr1,String[] strArr2) { if(strArr1 null || strArr2 null) { return null; } List<String> strList1 new ArrayList<String>(Arrays.asList(strArr1)); //----------代码段1 List<…

@ConfigurationProperties和@Value不同的使用场景,@Bean添加组件 (6.spring boot配置文件注入)...

接上文 注释掉ConfigurationProperties使用Value注解 /*** <bean class"Person">* <property name"lastName" value"字面量/${key}从环境变量、配置文件中获取值/#{spel}"></property>* <bean/>*/ //Spring底层注解…

sqlite的数据导入 导出

数据导入的来源可以是其他应用程序的输出&#xff0c;也可以是指定的文本文件&#xff0c;这里采用指定的文本文件。 1. 首先&#xff0c;确定导入的数据源&#xff0c;这里是待导入的&#xff0c;按固定格式的文本文件。 2. 然后&#xff0c;依照导入的文件格式&#xff0…

java继承孙子类_Java:类与继承

Java&#xff1a;类与继承对于面向对象的程序设计语言来说&#xff0c;类毫无疑问是其最重要的基础。抽象、封装、继承、多态 这四大特性都离不开类&#xff0c;只有存在类&#xff0c;才能体现面向对象编程的特点&#xff0c;今天我们就来了解一些类与继承的相关知识。首先&am…

linux 下安装JDK

安装配置JDK 下载JDK 因为Elasticsearch需要Java环境&#xff0c;所以需先下载JDK&#xff0c;并配置Java的环境\ 下载地址&#xff1a;http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html\ 这里我选择jdk-8u151-linux-x64.tar.gz解压安装…

在ubuntu上搭建LNMP服务器

LNMP Linux Nginx MySQL PHP 安装Nginx 执行以下命令即可: apt-get install nginx不过源里的版本是0.7.65&#xff0c;不喜欢老旧的玩意&#xff0c;可以尝试编译安装。 编译安装nginx. 1.准备编译环境 apt-get install libpcre3-dev build-essential libssl-dev在这里 htt…

java 后端开发好吗_后端开发学Java好还是学c++好呢?

C与 java 的抉择为了找工作&#xff1a;选Java。为挑战自我&#xff1a;选C。很多人都说会C就能会快掌握Jave。C是不好学&#xff0c;但是我告诉你java也不好学。C难是难在语言本身&#xff0c;java难是难在各种框架和库。你单纯学个java语法&#xff0c;你什么玩意也做不了&am…

mysql表名忽略大小写

MYSQL表名忽略大小写 问题描述&#xff1a;一开发同事在linux下调一个程序老是报错说找不到表&#xff0c;但是登陆mysql&#xff0c;show tables查看明明是已经创建了这张表的&#xff01;&#xff01;如下&#xff1a; 1234567891011121314151617181920212223mysql> show …