java -server 和 -client 的不同,及 java -server 时抛错原因

在dos窗口运行:java -server

Error: missing `server' JVM at `C:\Program Files\Java\jre7\bin\server\jvm.dll'.

Please install or use the JRE or JDK that contains these missing components.

网上的意思:

找到jdk安装目录下面 jre\bin 里面有 client 和 server 文件夹。

把 server 文件夹复制到 C:\Program Files\Java\jre7\bin\ 中就行了。

但我操作完成后,再试: java -server,显示:

Error occurred during initialization of VM

java/lang/NoClassDefFoundError: java/lang/invoke/AdapterMethodHandle

我又执行了一下: path c:\jdk\bin

然后再试 java -server, 终于成功了。 (可能是因为我的电脑上同时装了 jdk1.6 和 jdk1.7)

试了一下 java -server -version

java version "1.7.0_25"

Java(TM) SE Runtime Environment (build 1.7.0_25-b17)

Java HotSpot(TM) Server VM (build 23.25-b01, mixed mode)

下面是关于 -client 与 -server 的不同之处:

java -version //查看JVM默认的环境

java -client -version //查看JVM的客户端环境,针对GUI优化,启动速度快,运行速度不如server

java -server -version //查看JVM的服务器端环境,针对生产环境优化,运行速度快,启动速度慢

JVM工作在Server模式可以大大提高性能,但应用的启动会比client模式慢大概10%。当该参数不指定时,虚拟机启动检测主机是否为服务器,如果是,则以Server模式启动,否则以client模式启动,J2SE5.0检测的根据是至少2个CPU和最低2GB内存。

当JVM用于启动GUI界面的交互应用时适合于使用client模式,当JVM用于运行服务器后台程序时建议用Server模式。

JVM在client模式默认-Xms是1M,-Xmx是64M;JVM在Server模式默认-Xms是128M,-Xmx是1024M。我们可以通过运行:java -version来查看jvm默认工作在什么模式。

server jvm比client jvm进行了更多的优化,但同时这种优化有可能会引起一些在client jvm不会出现的问题,所以说在开发和测试的时候也尽量指定为server jvm

上一篇:You don't have permission to access /phpmyadmin/main.php on this server.


下一篇:idea取消参数名称(形参名)提示