运行jar文件前,我需要设置java虚拟机虚拟内存

在控制台打java -jar -Xms512m -Xmx1024m firstproject_fat.jar可以运行,那怎么把这两步和在一起生成一个exe文件,双击直接运行呢?

设置JVM内存的参数有四个:
-Xmx   Java Heap最大值,默认值为物理内存的1/4,最佳设值应该视物理内存大小及计算机内其他内存开销而定;
-Xms   Java Heap初始值,Server端JVM最好将-Xms和-Xmx设为相同值,开发测试机JVM可以保留默认值;
-Xmn   Java Heap Young区大小,不熟悉最好保留默认值;
-Xss   每个线程的Stack大小,不熟悉最好保留默认值;
2. 如何设置JVM内存分配:
(1)当在命令提示符下启动并使用JVM时(只对当前运行的类Test生效):
java -Xmx128m -Xms64m -Xmn32m -Xss16m Test
(2)当在集成开发环境下(如eclipse)启动并使用JVM时:
a. 在eclipse根目录下打开eclipse.ini,默认内容为(这里设置的是运行当前开发工具的JVM内存分配):
-vmargs  
-Xms40m  
-Xmx256m
-vmargs表示以下为虚拟机设置参数,可修改其中的参数值,也可添加-Xmn,-Xss,另外,eclipse.ini内还可以设置非堆内存,如:-XX:PermSize=56m,-XX:MaxPermSize=128m。
此处设置的参数值可以通过以下配置在开发工具的状态栏显示:
在eclipse根目录下创建文件options,文件内容为:org.eclipse.ui/perf/showHeapStatus=true
修改eclipse根目录下的eclipse.ini文件,在开头处添加如下内容:
-debug  
options  
-vm  
javaw.exe
重新启动eclipse,就可以看到下方状态条多了JVM信息。

温馨提示:内容为网友见解,仅供参考
第1个回答  2016-01-02
设置JVM内存的参数有四个:
-Xmx Java Heap最大值,默认值为物理内存的1/4,最佳设值应该视物理内存大小及计算机内其他内存开销而定;
-Xms Java Heap初始值,Server端JVM最好将-Xms和-Xmx设为相同值,开发测试机JVM可以保留默认值;
-Xmn Java Heap Young区大小,不熟悉最好保留默认值;
-Xss 每个线程的Stack大小,不熟悉最好保留默认值;
2. 如何设置JVM内存分配:
(1)当在命令提示符下启动并使用JVM时(只对当前运行的类Test生效):
java -Xmx128m -Xms64m -Xmn32m -Xss16m Test
(2)当在集成开发环境下(如eclipse)启动并使用JVM时:
a. 在eclipse根目录下打开eclipse.ini,默认内容为(这里设置的是运行当前开发工具的JVM内存分配):
-vmargs
-Xms40m
-Xmx256m
-vmargs表示以下为虚拟机设置参数,可修改其中的参数值,也可添加-Xmn,-Xss,另外,eclipse.ini内还可以设置非堆内存,如:-XX:PermSize=56m,-XX:MaxPermSize=128m。
此处设置的参数值可以通过以下配置在开发工具的状态栏显示:
在eclipse根目录下创建文件options,文件内容为:org.eclipse.ui/perf/showHeapStatus=true
修改eclipse根目录下的eclipse.ini文件,在开头处添加如下内容:
-debug
options
-vm
javaw.exe
重新启动eclipse,就可以看到下方状态条多了JVM信息。
b. 打开eclipse-窗口-首选项-Java-已安装的JRE(对在当前开发环境中运行的java程序皆生效)
编辑当前使用的JRE,在缺省VM参数中输入:-Xmx128m -Xms64m -Xmn32m -Xss16m
c. 打开eclipse-运行-运行-Java应用程序(只对所设置的java类生效)
选定需设置内存分配的类-自变量,在VM自变量中输入:-Xmx128m -Xms64m -Xmn32m -Xss16m
注:如果在同一开发环境中同时进行了b和c设置,则b设置生效,c设置无效,如:
开发环境的设置为:-Xmx256m,而类Test的设置为:-Xmx128m -Xms64m,则运行Test时生效的设置为:
-Xmx256m -Xms64m
(3)当在服务器环境下(如Tomcat)启动并使用JVM时(对当前服务器环境下所以Java程序生效):
a. 设置环境变量:
变量名:CATALINA_OPTS
变量值:-Xmx128m -Xms64m -Xmn32m -Xss16m
b. 打开Tomcat根目录下的bin文件夹,编辑catalina.bat,将其中的�TALINA_OPTS%(共有四处)替换为:-Xmx128m -Xms64m -Xmn32m -Xss16m
第2个回答  2012-08-18
需要工具我用的这个工具jsmooth-0.9.9-7本回答被提问者采纳
第3个回答  2012-08-18
使用exe4j。教程自己网上搜。追问

exe4j可以设置虚拟机最大内存么?我看教程都没写这部分的……

追答

exe4j可以将jar包变成exe。

运行jar文件前,我需要设置java虚拟机虚拟内存
设置JVM内存的参数有四个:-Xmx Java Heap最大值,默认值为物理内存的1\/4,最佳设值应该视物理内存大小及计算机内其他内存开销而定;-Xms Java Heap初始值,Server端JVM最好将-Xms和-Xmx设为相同值,开发测试机JVM可以保留默认值;-Xmn Java Heap Young区大小,不熟悉最好保留默认值;-Xss...

ubuntu下java虚拟机内存设置
ubuntu下java虚拟机内存设置是物理内存容量的1.5到3倍。根据查询相关资料信息显示,ubuntu下java虚拟机内存理设置虚拟内存虚拟内存的设定主要根据你的物理内存大小和电脑的用途来设定,设为物理内存容量的1.5到3倍。

怎样解决eclipse提示打不开java虚拟机
上述原因提示打不开java虚拟机,那么我们可以猜想到可能是java虚拟机虚拟内存设置错误,这时候我们进入解压缩目录打开eclipse.ini配置文件。打开文件后可以看到如下画面:接着将参数改小:你还可以将java版本从1.5该成1.6,现在最常用的也是1.6。保存后重启eclipse即可,eclipse就可以正常打开了。

java -Xmx512M -cp 是什么意思啊
java 主执行情况,用于启动JAVA程序。-Xms是设置虚拟机的初始分配的堆内存大小, 如果程序非常占内存, 需要用这个参数设置。-cp就是classpath, 加载类的路径,用于类加载器搜索运行时相关类。常常一起配合使用的还有以下几个参数 -Xmx512m JVM最大允许分配的堆内存,按需分配。-XX:PermSize=64M JVM初...

已经安装过jdk,为什么打开eclipse时,还显示没有Java虚拟机
你jdk的环境变量配错了。环境变量这样配置就好了,然后可以再命令行输入命令 java -version 查看java的版本,如果显示出来,那就是jdk安装成功。这样安装jdk有个好处就是,改变JAVA_HOME里面的目录就可以改变jdk的版本。你千万要注意,不要安装版的jdk,如果jdk是安装版的,会有注册表,这样配置环境变量...

怎样解决eclipse提示打不开java虚拟机
不需要安装,解压缩即可使用,这也是eclipse方便快捷的原因。eclipse提示打不开java虚拟机,可能是java虚拟机虚拟内存设置错误,这时候进入解压缩目录打开eclipse.ini配置文件。接着将参数改小:还可以将java版本从1.5该成1.6,现在最常用的也是1.6。保存后重启eclipse即可,eclipse就可以正常打开了。

如何理解Java虚拟机栈?
方法区\/静态区 存放的是类信息和static变量、常量。 被所有线程共享。也可以这么理解:堆是用来存放对象的,栈是用来运行程序的。堆:java的垃圾回收器会自动的回收这些不用的数据。缺点是由于要动态的分配内存,存储效率会比较的慢。栈:栈的优势是存取效率比较快,仅次于寄存器,栈数据可以共享。但缺...

电脑虚拟机有什么用
对于2.虚拟机软件安装完后,在面板上都能找到新建虚拟机的选项(new virtaul mathion),里面设置一下你给这台电脑配多大硬盘,多少内存,注意内存是直接用你真实内存,比如你真实1G,分给它512M,那你真实机器就只能用另512M(当然是虚拟电脑启动后才占用),分太多了给它的话,当你在运行比较吃内存的程序比如大型游戏时...

Win10系统下查看程序运行时占用多少虚拟内存的方法
右键点击“我的电脑”图标,进入属性-高级-性能-设置-高级-虚拟内存-更改,勾上无分页文件,然后按设置并确定。 无论在什么时候,增加内存都是提高相对速度的最快方法,因此,如果不是经常进行高级计算、图像处理、DX9 3D游戏的朋友,升级时尽可能先考虑内存容量。 13、安装DirectX 9b 不仅可以加速多媒体应用,而且能够...

java程序内存溢出一般什么原因
1、java.lang.OutOfMemoryError: PermGen spaceJVM管理两种类型的内存,堆和非堆。堆是给开发人员用的上面说的就是,是在JVM启动时创建;非堆是留给JVM自己用的,用来存放类的信息的。它和堆不同,运行期内GC不会释放空间。如果web app用了大量的第三方jar或者应用有太多的class文件而恰好MaxPermSize设置较小,超出...

相似回答