1. 虚拟机配置java环境
在一些规模稍大的应用中,Java虚拟机(JVM)的内存设置尤为重要,想在项目中取得好的效率,GC(垃圾回收)的设置是第一步。
PermGen space:全称是Permanent Generation space.就是说是永久保存的区域,用于存放Class和Meta信息,Class在被Load的时候被放入该区域Heap space:存放Instance。
GC(Garbage Collection)应该不会对PermGen space进行清理,所以如果你的APP会LOAD很多CLASS的话,就很可能出现PermGen space错误
Java Heap分为3个区
1.Young
2.Old
3.Permanent
Young保存刚实例化的对象。当该区被填满时,GC会将对象移到Old区。Permanent区则负责保存反射对象,本文不讨论该区。
JVM的Heap分配可以使用-X参数设定,
-Xms
初始Heap大小
-Xmx
java heap最大值
-Xmn
young generation的heap大小
JVM有2个GC线程
第一个线程负责回收Heap的Young区
第二个线程在Heap不足时,遍历Heap,将Young 区升级为Older区
Older区的大小等于-Xmx减去-Xmn,不能将-Xms的值设的过大,因为第二个线程被迫运行会降低JVM的性能。
为什么一些程序频繁发生GC?
有如下原因:
1.程序内调用了System.gc()或Runtime.gc()。
2.一些中间件软件调用自己的GC方法,此时需要设置参数禁止这些GC。
3.Java的Heap太小,一般默认的Heap值都很小。
4.频繁实例化对象,Release对象 此时尽量保存并重用对象,例如使用StringBuffer()和String()。
如果你发现每次GC后,Heap的剩余空间会是总空间的50%,这表示你的Heap处于健康状态,许多Server端的Java程序每次GC后最好能有65%的剩余空间
经验之谈:
1.Server端JVM最好将-Xms和-Xmx设为相同值。为了优化GC,最好让-Xmn值约等于-Xmx的1/3。
2.一个GUI程序最好是每10到20秒间运行一次GC,每次在半秒之内完成。
注意:
1.增加Heap的大小虽然会降低GC的频率,但也增加了每次GC的时间。并且GC运行时,所有的用户线程将暂停,也就是GC期间,Java应用程序不做任何工作。
2.Heap大小并不决定进程的内存使用量。进程的内存使用量要大于-Xmx定义的值,因为Java为其他任务分配内存,例如每个线程的Stack等。
Stack的设定
每个线程都有他自己的Stack。
-Xss
每个线程的Stack大小
Stack的大小限制着线程的数量。如果Stack过大就好导致内存溢漏。-Xss参数决定Stack大小,例如-Xss1024K。如果Stack太小,也会导致Stack溢漏。
硬件环境
硬件环境也影响GC的效率,例如机器的种类,内存,swap空间,和CPU的数量。
如果你的程序需要频繁创建很多transient对象,会导致JVM频繁GC。这种情况你可以增加机器的内存,来减少Swap空间的使用。
4种GC
1、第一种为单线程GC,也是默认的GC,该GC适用于单CPU机器。
2、第二种为Throughput GC,是多线程的GC,适用于多CPU,使用大量线程的程序。第二种GC与第一种GC相似,不同在于GC在收集Young区是多线程的,但在Old区和第一种一样,仍然采用单线程。-XX:+UseParallelGC参数启动该GC。
3、第三种为Concurrent Low Pause GC,类似于第一种,适用于多CPU,并要求缩短因GC造成程序停滞的时间。这种GC可以在Old区的回收同时,运行应用程序。-XX:+UseConcMarkSweepGC参数启动该GC。
4、第四种为Incremental Low Pause GC,适用于要求缩短因GC造成程序停滞的时间。这种GC可以在Young区回收的同时,回收一部分Old区对象。-Xincgc参数启动该GC。
单文件的JVM内存进行设置
默认的java虚拟机的大小比较小,在对大数据进行处理时java就会报错:java.lang.OutOfMemoryError。
设置jvm内存的方法,对于单独的.class,可以用下面的方法对Test运行时的jvm内存进行设置。
java -Xms64m -Xmx256m Test
-Xms是设置内存初始化的大小
-Xmx是设置最大能够使用内存的大小(最好不要超过物理内存大小)
tomcat启动jvm内存设置
Linux:
在/usr/local/apache-tomcat-5.5.23/bin目录下的catalina.sh添加:JAVA_OPTS='-Xms512m -Xmx1024m'要加“m”说明是MB,否则就是KB了,在启动tomcat时会报内存不足。
-Xms:初始值
-Xmx:最大值
-Xmn:最小值Windows
在catalina.bat最前面加入
set JAVA_OPTS=-Xms128m -Xmx350m 如果用startup.bat启动tomcat,OK设置生效.够成功的分配200M内存.但是如果不是执行startup.bat启动tomcat而是利用windows的系统服务启动tomcat服务,上面的设置就不生效了,就是说set JAVA_OPTS=-Xms128m -Xmx350m 没起作用.上面分配200M内存就OOM了..windows服务执行的是bin\tomcat.exe.他读取注册表中的值,而不是catalina.bat的设置.解决办法:
修改注册表HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Tomcat Service Manager\Tomcat5\Parameters\JavaOptions
2. linux虚拟机配置java环境
因为本来Java在不同架构的CPU、不同操作系统上的开发就具有统一的优势。
Java是语言,Linux是平台,语言一定要依靠于某个平台来工作。
兼容性就是安装了JVM的机器都可以跑Java程序。
Java虚拟机是为每个平台都提供的。也就是说,每一个平台都会编写一个特定的Java虚拟机。
至于为什么其他软件不能运行在其他操作系统上,这个取决于底层的体系结构和接口 Linux和Windows的文件结构都不一样,而且操作系统的架构相差特别多,而且底层的接口也是相差巨大,特别是在库文件方面。
Android系统和Linux发行版的系统根本区别是Android上面只跑了一个Dalvik/ART,而Linux发行版上面跑了很多Dalvik/ART而已。
Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。
3. 虚拟机配置java环境变量
在设置那边点击退出就可以了。
4. 虚拟机配置java环境不可用
仅就 Eclipse 本身而言,只需要 JRE 就够了。因为 Eclipse 有自己内置的编译器 Eclipse Java development tools (JDT)
。但是 Eclipse 只是一个平台,也许你用到的其他东西(比如 maven )有需要 JDK 的也说不定。
5. 虚拟机安装java环境
一,ipad不能安装虚拟机,由于硬件不支持的原因,不能安装其他系统。 二,但是ipad可以远程连接电脑,显示电脑界面。
6. java 虚拟环境
原因一般情况下虚拟机无法启用显卡direct draw加速和direct 3D加速功能,限制了游戏的运行。
改用其他版本的虚拟机,只要能支持显卡加速功能,就应该能运行一般性的游戏。大型3D游戏肯定不行。
还有是因有些游戏程序会自动执行虚拟机检测,禁止在虚拟机运行。并不是虚拟机的问题。
因为如果虚拟机也可以玩大型游戏的话,一台电脑可以挂很多游戏,但是游戏厂商是不允许这样的。
7. java虚拟环境怎么设置
错误提示无法创建JAVA虚拟机,需要先确定jdk已成功并正确的安装,并且已正确的配置环境变量
JAVA JDK安装及环境变量设置步骤:
1、安装JDK,安装过程中可以自定义安装目录等信息,例如选择安装目录为D:\java\jdk1.5.0_08;
2、安装完成后,右击【我的电脑】,点击【属性】;
3、选择【高级】选项卡,win7为左侧【高级系统设置】,点击【环境变量】;
4、新建系统环境变量 JAVA_HOME,值为刚才的安装路径D:\java\jdk1.5.0_08(注意:JAVA_HOME为系统环境变量,不要弄成用户环境变量)
5、找到环境变量Path,点击编辑,在其中加上%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
6、新建变量CLASSPATH,值为.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar(注意:前面有一个点,表示当前路径)
7、点击确定保存即可
8、【开始】然后点击或搜索【运行】,键入“cmd”,打开dos窗口,键入命令“java -version”,“java”,“javac”几个命令,没有报错,则配置成功!
8. 虚拟机配置java环境错误
查看步骤:
一、在Linux命令行中输入cd /usr/local,mkdir soft。
二、上传jdk1.8.0_171到/usr/local/soft。
三、解压jdk到soft
1、在soft目录下输入tar -zxvf jdk-8u171-linux-x64.tar.gz,
2、使用vim /etc/profile进入编辑文件,
3、输入红圈内的两行代码
配置环境变量。
四、让环境变量生效
五、 验证jdk是否安装成功
输入java -version
如果出现版本号,就证明安装成功了
9. 虚拟机jdk环境配置
显然,是不行的。
你可以将虚拟机理解为一台独立于宿主机的机器。显然,如果想要使用虚拟机编译Java代码,你的虚拟机还是需要安装jdk的。
当然,如果你只是用文本工具编辑代码,当我没说。。。