今天在服务器上装JDK1.5,费了不少力气,记录下来以供参考

服务器安装的操作系统为Red Hat 6.1(x86)

[123@123 bin]$ cat /etc/redhat-release
Red Hat Enterprise Linux Workstation release 6.1 (Santiago)
[123@123 ~]$ uname -op
x86_64 GNU/Linux

由于项目使用JDK1.5编译,故在安装JDK时首先选则的jdk-1_5_0_22-linux-i586.bin:

Do you agree to the above license terms? [yes or no]
yes
Unpacking...
Checksumming...
0
0
Extracting...
./jdk-1_5_0_15-linux-i586.bin: ./install.sfx.2991: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
mkdir: cannot create directory `jdk1.5.0_15/jre': No such file or directory
mkdir: cannot create directory `jdk1.5.0_15/jre/.systemPrefs': No such file or directory
touch: cannot touch `jdk1.5.0_15/jre/.systemPrefs/.system.lock': No such file or directory
chmod: cannot access `jdk1.5.0_15/jre/.systemPrefs/.system.lock': No such file or directory
touch: cannot touch `jdk1.5.0_15/jre/.systemPrefs/.systemRootModFile': No such file or directory
chmod: cannot access `jdk1.5.0_15/jre/.systemPrefs/.systemRootModFile': No such file or directory
./jdk-1_5_0_15-linux-i586.bin: line 680: cd: jdk1.5.0_15: No such file or directory Done.

搜索了一下/lib/ld-linux.so.2: bad ELF interpreter这个错误,很多地方提示安装glib(一个跨平台的、用c语言编写的库)即可解决,不过我没尝试过

剩余的选择不多,既然32位JDK1.5无法安装,尝试下64位JDK1.5

选择jdk-1_5_0_22-linux-amd64.bin再次尝试,安装成功,但是在运行时会提示找不到java.lang.Object

[123@123 bin]$ ./java -version
Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/Object

在jdk1.5.0_11/jre/lib目录下竟然没有rt.jar!

查了下有人自己上传rt.jar解决了这个问题,手头上没有64位的rt.jar,用32位的尝试了下,果然是不行的

[123@123 bin]$ ./java -version
Error occurred during initialization of VM
java.lang.UnsatisfiedLinkError: set

其实这是一个很明显的错误,安装包上明确写着amd64,即这是专门为amd64架构的处理器使用的

[123@123 ~]$ cat /proc/cpuinfo|grep 'model name'
model name      : Intel(R) Xeon(R) CPU           E5620  @ 2.40GHz

服务器上的英特尔Xeon E5620处理器使用的是Intel64(EM64T)架构

万般无奈下,考虑到JDK版本向下兼容,最终选择了1.6版本的JDK

比起JDK1.5,JDK1.6安装包的名称更清晰易懂(直接使用x64,不再区分amd64与intel64),选择安装jdk-6u45-linux-x64.bin,没有问题:

[123@123 web]$ ./jdk1.6.0_45/bin/java -version
java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)

当然如果选择jdk-6u45-linux-i586.bin应该也是没有问题的

特别需要注意的是Red Hat 6.1(x86)中自带的JDK为OpenJDK而非Java(TM)

[123@123 ~]$ java -version
java version "1.6.0_20"
OpenJDK Runtime Environment (IcedTea6 1.9.7) (rhel-1.39.1.9.7.el6-x86_64)
OpenJDK 64-Bit Server VM (build 19.0-b09, mixed mode)

这两个JDK还是有一定差异的,在Java(TM)环境下编译并能正常运行的程序在OpenJDK环境下不一定能正常运行

RedHat6.1(64bit)安装JDK的更多相关文章

  1. CentOS 64-bit下安装JDK和Tomcat并设置Tomcat开机启动操作步骤

    准备文件如下: 1.CentOS-6.4-x86_64-bin-DVD1.iso 2.jdk-7u67-linux-x64.rpm 3.apache-tomcat-7.0.55.tar.gz 安装步骤 ...

  2. linux下安装jdk

    第一步:查看Linux自带的JDK是否已安装 (卸载centOS已安装的1.4) 安装好的CentOS会自带OpenJdk,用命令 Java -version ,会有下面的信息: Javaversio ...

  3. Ubuntu下安装JDK以及相关配置

    1.查看系统位数,输入以下命令即可 getconf LONG_BIT 2.下载对应的JDK文件,我这里下载的是jdk-8u60-linux-64.tar.gz 3.创建目录作为JDK的安装目录,这里选 ...

  4. Ubuntu 安装 JDK 7

    直接下载jdk压缩包方式安装 分为下面5个步骤 1.官网下载JDK 2.解压缩,放到指定目录 3.配置环境变量 4.设置系统默认JDK 5. 测试jdk 1.官网下载JDK      地址: http ...

  5. Redhat Linux安装JDK 1.7

    本篇主要介绍在Redhat Linux(Red Hat Enterprise Linux Server release 5.7 (Tikanga))系统上安装JDK 1.7,其它Linux平台安装也大 ...

  6. 搭建centos测试环境:window安装xshell,WinSCP 。 centos安装jdk tomcat

    通过ssh实现远程访问linux系统: 由于xshell 连接centos,需要centos开启ssh服务.所以先启动SSH服务,没有ssh需要先安装. 1 . 查看SSH是否安装命令:rpm -qa ...

  7. Ubuntu server12.04安装JDK+Tomcat+mysql

    一.安装JDK 1.首先到官网上下载jdk-7u79-linux-x64.tar.gz. 2.将jdk-7u79-linux-x64.tar.gz拷贝到/usr/lib/jdk/目录下面,这里如果没有 ...

  8. 在linux上通过yum安装JDK

    完全转载自:https://my.oschina.net/andyfeng/blog/601291 这里完整粘贴一份留存 卸载centos自带的jdk 1.查看当前的jdk版本,并卸载 [root@l ...

  9. Linux下安装JDK并配置环境变量

    1. 查询是否默认安装有JDK [root@localhost bin]# java -version java version "1.6.0_22" OpenJDK Runtim ...

随机推荐

  1. [POJ 1151] Atlantis

    一样的题:HDU 1542 Atlantis Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 18148   Accepted ...

  2. 小图用 imageNamed: 大图用 dataWithContentsOfFile:options

    1down voteaccepted If you're loading images like:[UIImage imageNamed:@"myImage.png"];Then ...

  3. sql server 修改表的默认值, 需要先删除约束条件

    ---------增加是否发布订单 if not exists(select 1 from syscolumns where name='iIsRelease' and id=OBJECT_ID('M ...

  4. apache学习

    核心功能和多路处理模块: Core:apache HTTP服务器核心提供的功能,始终有效 Mpm_common:收集了被多个多路处理模块(MPM)实现的公共指令 其他普通模块: mod_actions ...

  5. spatialite-android-library 环境搭建

    spatialite-android-library项目介绍 搭建NDK开发环境 下载spatialite-android-library项目 搭建spatialite-android-library ...

  6. bzoj 1875 [SDOI2009]HH去散步(矩乘)

    Description HH有个一成不变的习惯,喜欢饭后百步走.所谓百步走,就是散步,就是在一定的时间 内,走过一定的距离. 但是同时HH又是个喜欢变化的人,所以他不会立刻沿着刚刚走来的路走回. 又因 ...

  7. 【UER #1】跳蚤OS(Trie)

    跳蚤OS 是跳蚤国自主研发的功能强大的操作系统. 跳蚤OS的文件系统与普通的文件系统类似,是个文件夹套文件夹的结构.文件系统根目录称为“//”.我们可以用文件路径来表明文件所在的位置,比如“/flea ...

  8. Java中String是“引用”传递

    如题,在java中这是一个典型的问题. 在stackoverflow上已经有很多相似的问题被提问,并且有很多不正确或不完整的答案.如果你不往深处想,这是一个很简单的问题.但如果深入思考,它却很让人迷惑 ...

  9. mysql日志清理

    mysql bin-log 日志清理 发现mysql数据库目录中bin-log中日志文件非常大 [root@localhost var]# du -sh mysql-bin* | sort 1020K ...

  10. 【Java基础】Java中的代码块

    什么是代码块 在Java中,用{}括起来的代码称之为代码块. 代码块分类 局部代码块:在局部变量位置且用{}括起来的代码,用于限制局部变量的生命周期. 构造代码块:在类中的成员变量位置并用{}括起来的 ...