ibm java_IBM i 上Java 虚拟机简介

Abstract

IBM i 上Java 虚拟机简介

Body

Java在IT业界有多流行?google上搜索一下java,

结果一目了然(今天早上我搜索到的记录数是840000000条)。Java之所以能广泛的被应用,与它“一次编译,处处运行”,也就是跨平台性是密不可分的。JVM是Java的跨平台性实现的基础,不同平台上标准统一的JVM提供了相同虚拟运行环境,使得Java应用不用做(或很小的)修改在各个JVM上都能运行。IBM

Technology for Java Virtual

Machine是IBM自己开发的一款JVM,它支持在当前流行的大部分平台上的安装和使用,这其中就包括IBM

i。本文将对这款虚拟机以及它IBM

i上的支持简单进行介绍。

子曰:名不正则言不顺。虽然孔圣人的这个“名”不是名字的名,这里还是要借用一下,先让我们把要介绍的这个JVM的名字说清楚。除去IBM

Technology for Java Virtual Machine,在一些文档中,也许你还读到过这些名称:IBM

Virtual Machine for Java, IBM JVM,IBM

J9 VM, J9 JVM, 以及IT4J。其实这些名称指的都是本文要介绍的这款JVM(为了方便,下文中我统一使用J9

VM),而这不同的名称中,J9显得更特别一点。为什么会有J9这个名字呢?这与这款JVM的出身有关,它最早是由IBM

Ottawa实验室一个Small

Talk的虚拟机扩展来的。那时候,这个虚拟机有一个bug是因为8k值定义错误引起,工程师们花了很长时间终于发现并解决了这个错误,此后这个版本的虚拟机就被称为K8了。于是,后来出现的支持Java这个版本的虚拟机就被称为J9了。

为实现JVM定义的功能(JVM的功能和定义,请参考相关资料),并提供自己的独特性,J9

VM主要由以下几部分组成,如图1:

jvm.JPG

图1.

J9 VM的组成

JVM API: 外部应用与JVM交互和调用的接口;

GC: 又被称为Memory

Management,是JVM内存管理模块;

Class Loader: 支持Java语言动态装载code的模块;

Interpreter: JVM的解释执行器;

Diagnostics: 提供JVM

的Reliability,

Availability, Serviceability (RAS)特性;

Platform port layer:

这个模块提供支持,使得JVM在各种不同系统平台上的运行。

良好的设计让J9

VM具有高可配置性和可扩展性,IBM把它用在各个版本各种平台的JDK中,IBM

i就是J9

VM支持众多平台中的一个。IBM

i在J9

VM引入前就早已开始支持Java。早在1998年,IBM

I V4R2就提供了i平台自己的JVM,

这款JVM被称为Classic

JVM, 通过它Java程序能够在IBM

i上直接运行(在这之前,一款称为Java

toolbox的产品,已经让其他平台上运行的Java应用可以访问IBM

i系统的资源,如数据文件,可运行程序等)。J9

VM的引入是在IBM

I V5R4版本之后,是通过IBM

i的Portable

Application Solution Environment(PASE)环境实现的。与Classic

JVM只支持64位地址访问不同,J9

Vm有两种不同版本32位和64位(V5R4上只有32位版本,V6R1之后开始支持64位版本)。J9VM引入后,IBM

i逐渐取消了对Classic

JVM的支持(从IBM

I V7R1开始,Classic

JVM已经不再支持)。虽然Classic

JVM不再被支持,但用户已有的Java应用仍然可用,因为总得来说运行在Classic

JVM上的应用也都可以在J9

Vm上运行。在IBM

i上,之所以用J9

Vm取代Classic

JVM, 主要有以下几个因素:

a.J9 Vm在性能上更优于Classic

JVM, 特别对于中小型应用J9

VM提供的32位的版本在空间占用和性能上相对Classic有很大改进;

b. J9 Vm是IBM多个平台共用的,

缺陷的修改和新技术的应用在J9

Vm上能及时的获得支持,而Classic

JVM作为IBM

i独有的JVM需要单独的投入才能保证及时的更新;

Note:具体J9

VM和Classic

JVM有那些不同,为什么一定要引入J9

Vm会有后续

文章介绍。

IBM i的PASE环境与AIX类似,J9

VM在IBM

i Shell环境下的使用与AIX中也类似。下面的事例是一个简单使用J9

VM的过程:

Step1.通过QSH命令进入shell环境;

Step2.通过环境变量JAVA_HOME来设置要使用的JDK版本,假设我们使用JDK60

32bit:

export

JAVA_HOME=/QOpenSys/QIBM/ProdData/JavaVM/jdk60/32bit

Note:注意大小写,/QOpenSys下大小写敏感

Step3.随JDK发布会有一个QIBMHello类,执行这个类会在控制台输出QIBMHello几个字符;通过执行它

就可以验证JDK是否安装正确,运行命令:java QIBMHello;

关于J9

Vm在IBM

i Shell环境中使用和支持的详细资料,以及IBM

i ILE环境中的支持,请参考IBM

i infocenter.

参考资料:

[{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SWG60","label":"IBM i"},"Component":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"","Edition":"","Line of Business":{"code":"LOB08","label":"Cognitive Systems"}}]

UID

ibm11146190

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值