(JavaCard) 技术入门 2 -- 搭建JCDK开发环境

来源:互联网 发布:js arrayindexof 编辑:程序博客网 时间:2024/05/21 10:10

以我自己实现的版本JCDK 2.2.2为例子:

1.到 http://java.sun.com/javacard 网站上下载一个Java Card Development Kit 2.2.2 (即所谓的JCDK)

2.将JCDK解压到固定的位置(比如C:\java_card_kit-2_2_2)下,在doc\en\guides\pdf子目录下面可以看到安装手册cJDK Users Guide (注:OS以windows为例子,其它OS请参照安装手册)

3.到 http://java.sun.com/j2se 网站上下载一个JDK 1.5.0_19 并安装(比如C:\j2sdk1.5)(注:版本1.5,每个JCDK都对应自己支持的JDK版本,具体的要求在JCDK的手册中)

4.JCDK的bin目录下有一些虚拟卡工具,如果你希望该工具支持实卡操作,那么你需要一个符合TLP224规范的读卡器,并需要安装javax.comm包,该包位于http://java.sun.com/products/javacomm。当然你也可以选择不支持该特性,而使用其它的工具来操作实卡。(比如GPShell)

5.JCDK的bin目录下有一些工具和批处理,为了能正确运行,需要设置windows的环境变量 set JC_HOME=C:\java_card_kit-2_2_2 来指向JCDK的路径,set JAVA_HOME=C:\j2sdk1.5 来指向JDK的路径(该环境变量将在JCDK的批处理工具中使用),在环境变量PATH中增加两个路径 set PATH=%JC_HOME%\bin;%JAVA_HOME%\bin;%PATH% 用来提供JCDK和JDK的运行路径。(注:请直接修改环境变量,在cmd窗口运行将只能临时更新环境变量)

6.JCDK自带了ant-task提供了若干的自定义ant任务,这些自定义任务是为了提供给用户实现ant方式的编译和转化工作(samples目录中的例子全部使用了ant进行编译和转化),所以运行态需要ant工具支持。在http://ant.apache.org下载一个1.62版的ant安装包(1.7的经过试验也能用),解压到固定目录。并将此目录的bin目录加入注册表的系统路径中。解压ant-task包到JCDK的子目录C:\java_card_kit-2_2_2\ant-tasks中,对应会有两个子目录C:\java_card_kit-2_2_2\ant-tasks\docs 和 C:\java_card_kit-2_2_2\ant-tasks\lib来存储文档和任务的jar包。

到目前为止,开发环境配置就完成了,让我们到samples子目录下去试验一下。

到simples目录,运行build_samples.bat,将会自动的调用ant来执行build_samples.xml中的ant任务。

...........................

<!--   Compile sources -->        
<target name="compile_samples" description="compile sample classes" >
     <javac debug="yes" destdir="${CL_DIR}" optimize="no" srcdir="${source_home}">
        <classpath refid="classpath"/>
      </javac>
</target>


<!--  Conversion Targets -->    
<target name="convert_helloworld" description="converts HelloWorld sample"> 
    <convert
        dir="${CL_DIR}"
        Configfile="${source_home}/com/sun/javacard/samples/HelloWorld/HelloWorld.opt">
        <classpath refid="classpath"/>
    </convert>
</target>

可以看到,任务的主要task就是 javac 和 convert,这两个task对应了JDK和JCDK的主要工作。

JDK的编译器javac将java源代码编译成class字节码,而JCDK的转化器converter将字节码进一步转化为卡内结构CAP,以及相应的一些辅助文件。


在创建和编译javacard工程的时候,可以有命令行的方式,或者用ant的方式。

当前java的主流IDE是eclipse,我们有没有可能像J2SE/J2EE那样写完代码就编译和调试呢?国外有雷锋同志已经做了这个plugin,可以在我的空间下载:

http://download.csdn.net/source/3570039

http://eclipse-jcde.sourceforge.net 有原作者最新版插件下载和安装用户手册,我就不转发了。


另外,JCOP有自己的eclipse插件,预置jdk,jcdk 2.1和GP 2.1,拥有基于GP的安全域管理和应用下载功能。是个快速开发不错的选择。需要注意的是,JCOP对converter在不违背JCVM中格式规定的前提下,做了自己的优化。虽然不影响运行,但是和sun的JCDK转化出来的CAP可能不尽相同。这个插件现在已经不是免费的了,可以到我的空间下载破解版的:

http://download.csdn.net/source/3568630

安装好eclipse,将com.ibm.bluez.jcop.eclipse_3.1.1.b安装到eclipse的plugins下,待激活。

激活方法:
在eclipse的WorkSpace下,有“.metadata\.plugins\org.eclipse.core.runtime\.settings”目录,
在这个目录下,建立一个文件,命名为“com.ibm.bluez.jcop.eclipse.prefs”,文件内容如下:
com.ibm.bluez.jcop.eclipse.views.bytecode.weights.1=333
com.ibm.bluez.jcop.eclipse.views.bytecode.weights.0=666
eclipse.preferences.version=1
com.ibm.bluez.jcop.eclipse.views.shell.trace=true
com.ibm.bluez.jcop.eclipse.token=23cb832f9bc9c8bffe21d53e8f02e5bc
这就完成了,如果你要更换WorkSpace,将上述文件复制过去就ok了。

至于这两个插件怎么用,鉴于本人实在是懒得抓图,上传图片,自己摸索一下吧。

0 0
原创粉丝点击