`
85977328
  • 浏览: 1899181 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jdk(32bit)的高级安装---client模式与server模式

阅读更多
1.这个问题讨论起来其实挺简单,但笔者也是最近才恍然大悟.受益匪浅.刚开始,笔者误认为openJDK的性能强于sun的HotSpot,后来发现,openJDK的默认运行模式是server,而HotSpot的默认模式client,所以拿出来心得,与朋友们分享,如果大家觉得这篇文章有用,请跟帖讨论,本人以后还会拿出更多的心得与大家交流学习.
到http://www.oracle.com/technetwork/java/javase/downloads/index.html
下载jdk-6u23-windows-i586.exe
安装到C:\Java,安装的时候,javaDB和jre笔者认为,没有安装的必要,只安装JDK.

2.设定环境变量,一般不推荐变量的引用,有些环境下会出问题,例如eclipse下的javadoc,所以PATH,CLASSPATH尽量写全,不要引用%JAVA_HOME%
JAVA_HOME    C:\Java\jdk1.6.0_23
PATH    %JAVA_HOME%\bin
CLASSPATH    .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

3.虚拟机版本与模式查看
java -version //查看JVM默认的环境
java -client -version //查看JVM的客户端环境,针对GUI优化,启动速度快,运行速度不如server
java -server -version //查看JVM的服务器端环境,针对生产环境优化,运行速度快,启动速度慢

4.虚拟机模式切换
目录JAVA_HOME/jre/bin下,会有2个目录,server与client.这个就是他们的运行环境的动态库.那么怎么切换呢?找到JAVA_HOME/jre/lib/i386/jvm.cfg,这就是JVM默认的查找顺序,内容如下
-client KNOWN
-server KNOWN
-hotspot ALIASED_TO -client
-classic WARN
-native ERROR
-green ERROR
只需要把-server和-clent换个位置就行了.如下
-server KNOWN
-client KNOWN
-hotspot ALIASED_TO -client
-classic WARN
-native ERROR
-green ERROR
这个时候在输入java -version看看吧,是不是默认的使用服务器端了呢,一般开发环境是使用client,而生产环境会使用server.有什么问题大家留言吧,我们一起交流.^-^
分享到:
评论
11 楼 lucane 2011-03-08  
自己编译IcedTea估计蛮要点功夫

目前只见过已经编译好的
hello@KNIGHT:~$ /usr/lib/jvm/java-6-openjdk/jre/bin/java -cacao -version
java version "1.6.0_20"
IcedTea Runtime Environment (IcedTea6 1.9.7) (6b20-1.9.7-0ubuntu1)
CACAO (build 1.1.0pre1, compiled mode)

hello@KNIGHT:~$ /usr/lib/jvm/java-6-openjdk/jre/bin/java -version
java version "1.6.0_20"
OpenJDK Runtime Environment (IcedTea6 1.9.7) (6b20-1.9.7-0ubuntu1)
OpenJDK Server VM (build 19.0-b09, mixed mode)
hello@KNIGHT:~$ /usr/lib/jvm/java-6-openjdk/jre/bin/java -client -version
java version "1.6.0_20"
OpenJDK Runtime Environment (IcedTea6 1.9.7) (6b20-1.9.7-0ubuntu1)
OpenJDK Client VM (build 19.0-b09, mixed mode, sharing)

以前到是想过在X86编译Dalvik,看了圈,还是没有勇气和实力。。。
10 楼 jorneyR 2011-01-08  
Mac下默认使用的就是Server,不用修改,*^o^*
9 楼 wkoffee 2011-01-08  
client 和 server的本质区别是他们内部使用的jit compiler是不一样的,在hotspot内部分别称作 c1 和 c2 (有人知道c3吗 ,sun一直想将这两个jit compiler合并,即TieredCompilation,已经说了好多年了,现在看来已经有实际进展了,如果build最新的hotspot server jvm的话,可以看到c1的代码也会被编译,以前是忽略的,在jdk7中应该能看到这个feature
8 楼 RednaxelaFX 2011-01-07  
85977328 写道
那icetea怎么安装呢?有win32的吗

呃…没见到过IcedTea的预先build好的Windows版安装包。有能力的话自己build呗~ 在Windows上的部分其实没怎么变吧,跟OpenJDK相比。变化的点主要在别的地方,像是Zero/Shark啊、Linux上一些库和bug的更新啊啥的。
7 楼 85977328 2011-01-07  
那icetea怎么安装呢?有win32的吗
6 楼 RednaxelaFX 2011-01-07  
前面提到的OpenJDK在Windows XP SP3 32位上默认的:
D:\sdk\OpenJDK\openjdk-6.20.1\bin>java -version
openjdk version "1.6.0-OpenSCG-Build-20"
OpenJDK Runtime Environment (build 1.6.0-OpenSCG-Build-20-b1)
OpenJDK Client VM (build 17.0-b16, mixed mode)
5 楼 85977328 2011-01-07  
RednaxelaFX 写道
OpenJDK如果在Windows上build出来的话,默认的运行模式也是-client吧 =_=
只不过OpenJDK官网并没有直接提供Windows上build好的安装包,所以这个对很多人来说变得难以验证。

在这个网站有OpenJDK在Windows/Linux/Mac OS X上build好的安装包:http://www.openscg.com/se/

见到用OpenJDK的有许多是在Linux上的。从Java 5开始,HotSpot就自带了ergonomics,可以根据环境选择一些启动参数。
引用
In the J2SE platform version 5.0 a class of machine referred to as a server-class machine has been defined as a machine with
2 or more physical processors
2 or more Gbytes of physical memory

于是在比较现代的PC上,要满足这里的“服务器级别”的判定标准一点也不困难,满足该标准就会使HotSpot自动选择使用server模式来启动。这在OpenJDK和Oracle/Sun版JDK里都是一样的。

只不过这ergonomics在32位Windows上没开启,所以在这种环境下默认还是用-client而已。

恩,感谢楼上的恢复,受益匪浅了。我这就是试一下windows版本的openjdk
4 楼 RednaxelaFX 2011-01-07  
OpenJDK如果在Windows上build出来的话,默认的运行模式也是-client吧 =_=
只不过OpenJDK官网并没有直接提供Windows上build好的安装包,所以这个对很多人来说变得难以验证。

在这个网站有OpenJDK在Windows/Linux/Mac OS X上build好的安装包:http://www.openscg.com/se/

见到用OpenJDK的有许多是在Linux上的。从Java 5开始,HotSpot就自带了ergonomics,可以根据环境选择一些启动参数。
引用
In the J2SE platform version 5.0 a class of machine referred to as a server-class machine has been defined as a machine with
2 or more physical processors
2 or more Gbytes of physical memory

于是在比较现代的PC上,要满足这里的“服务器级别”的判定标准一点也不困难,满足该标准就会使HotSpot自动选择使用server模式来启动。这在OpenJDK和Oracle/Sun版JDK里都是一样的。

只不过这ergonomics在32位Windows上没开启,所以在这种环境下默认还是用-client而已。
3 楼 85977328 2011-01-04  
只要有JDK下的JRE,就没必要在安装的时候,再选择独立的JRE了
2 楼 85977328 2011-01-04  
superxgz 写道
如果装了公共JRE,运行 “java -server -version”会报“Error: no `server' JVM at `C:\Program Files\Java\jre6\bin\server\jvm.dll'.”这个错
而且公共JRE下没有server这个目录
只有JDK自带的jre的目录下有server这个目录
那是不是生产环境不能安装公共JRE,还是有什么办法可以让系统自动使用JDK自带的JRE

只要生产环境下,不安装公共JRE就可以了
1 楼 superxgz 2011-01-04  
如果装了公共JRE,运行 “java -server -version”会报“Error: no `server' JVM at `C:\Program Files\Java\jre6\bin\server\jvm.dll'.”这个错
而且公共JRE下没有server这个目录
只有JDK自带的jre的目录下有server这个目录
那是不是生产环境不能安装公共JRE,还是有什么办法可以让系统自动使用JDK自带的JRE

相关推荐

    jdk-6u45-windows-i586

    **Java Development Kit (JDK) 1.6 for 32-bit Systems** JDK(Java Development Kit)是Oracle公司提供的用于开发和运行Java应用程序的重要工具集。在标题"jdk-6u45-windows-i586"中,"6u45"表示的是JDK 1.6的第45...

    centsos6.5+jdk1.7+mysql5.5+tomcat7+nginx1.7安装手册

    由于CentOS 6.5默认安装了OpenJDK 1.7,这可能会与后续安装的JDK 1.7冲突,因此需要先卸载原有的OpenJDK。 ```shell # 查看系统当前的Java版本 java -version # 输出示例:java version "1.7.0" # OpenJDK Runtime ...

    jdk1.8-windows版64位

    With JDK 1.8 installed, developers can leverage its advancements in developing robust and scalable applications for both client-side and server-side computing. It's crucial to keep JDK up to date for ...

    jdk1.6(64位版)

    - **动态编译器(Client Compiler 和 Server Compiler)**:JDK 1.6引入了C2(Server Compiler),它是一个更高效的编译器,能够在运行时对热点代码进行优化,提高整体性能。 - **改进的垃圾收集器**:如Parallel ...

    Oracle BIEE 10g在RedHat 5.4 x86_64下的安装部署

    6. **其他必需的依赖包:** 确保已经安装了 `glibc-32bit-8.1-9` 和 `glibc-devel-32bit-8.1-9`,否则在安装 Oracle 客户端时会出现 `UnsatisfiedLinkError exception loading native library: njni10` 错误。...

    最新linux下tomcat5.5.25+mysql5.0.45+jdk1.0.5.13+eclipse3.3.1+myeclipse6.0下载和配置

    - [Direct Link](http://dev.mysql.com/downloads/mysql/5.0.html#linux-static-x86-32bit-rpms) - **步骤:** 1. 访问官方提供的下载页面。 2. 下载适用于 Linux x86 架构的 RPM 文件,包括 `MySQL-client`, `...

    APPium工具的安装及使用教程

    下载JDK并安装,设置安装路径(例如默认路径C:\Program Files(x86)\Java\jdk1.8.0_45)。安装完成后,还需要设置环境变量,确保可以在命令行工具中使用`java`命令。在Windows命令提示符中输入`java -version`命令,...

    Ubuntu18.04 linux系统安装JDK与Mysql的方法

    1. 检查与安装MySQL Ubuntu 18.04默认提供了LAMP(Linux、Apache、MySQL、PHP)套件,所以在安装系统时可能已经包含了MySQL。要检查MySQL是否已安装,可以尝试运行`mysql`命令: ``` lemon@ubuntu:~$ mysql ``` ...

    Zookeeper-3.4.6 安装及配置【Linux】.docx

    首先,安装Zookeeper的前提条件是需要Java Development Kit (JDK) 1.6或以上版本。确保已安装JDK并设置了环境变量,可以通过`java -version`命令检查Java版本。 接下来,通过wget命令下载Zookeeper的3.4.6版本。在...

    guacamole远程桌面

    tar -zxvf guacamole-server-1.1.0.tar.gz cd guacamole-server-1.1.0 ``` - 检测依赖库是否安装完整: ``` ./configure --with-init-dir=/etc/init.d ``` - 如果检测结果显示所有依赖都已安装成功,则可以...

    obiee快速安装手册.txt

    1. **Oracle Parameters 配置**:确保 Oracle DB 32-bit Client 已安装。 2. **TNS_ADMIN 配置**:设置 TNS_ADMIN 环境变量指向 Oracle DB 的网络配置文件。 3. **PATH 配置**:更新 PATH 变量,确保包含 Oracle DB ...

    Ubuntu部落 基本教程

    - 文本模式安装:适用于高级用户或没有图形界面的环境。 - 网络安装:从网络下载必要的安装文件。 - 最小化安装:仅安装最基本的操作系统组件。 #### 四、快速设置指南 - **修改源并更新升级Ubuntu**: - 通过...

    Zookeeper-3.4.6 安装及配置(Linux)

    这里,`dataDir` 和 `dataLogDir` 分别指定了数据目录和日志目录,`clientPort` 是客户端连接的端口,而 `server.X` 表示集群中的服务器配置,X是服务器ID,A是IP地址,B是follower与leader通信的端口,C是选举...

    Y-zookeeper安装.docx

    因此,在安装Zookeeper之前,请确保你的系统中已经正确安装并配置了JDK。如果没有,你需要先安装JDK,再进行Zookeeper的安装。 总结,安装和配置Zookeeper涉及的主要步骤包括下载安装包、解压、配置环境变量、修改...

    Java全阶段综合笔试面试题(含答案).docx

    32. **构造器Constructor是否可以被继承?是否可以被Override?** - 构造器不能被继承。 - 构造器不能被重写(Override),但可以通过super调用父类的构造器。 33. **Java序列化,如何实现Java序列化?** - 实现`...

    DDMQ消息队列-其他

    carrera-producer 生产消息代理模块,内置 Thrift Server, 负责将 client 的生产的消息转发给 broker。 carrera-consumer 消费消息代理模块, 内置 Thrift Server, 提供 SDK 拉取和 HTTP 推送等方式将消息发给订阅...

Global site tag (gtag.js) - Google Analytics