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

2024-02-24 17:58

本文主要是介绍(JavaCard) 技术入门 2 -- 搭建JCDK开发环境,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

以我自己实现的版本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了。

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

这篇关于(JavaCard) 技术入门 2 -- 搭建JCDK开发环境的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/742891

相关文章

Spring boot整合dubbo+zookeeper的详细过程

《Springboot整合dubbo+zookeeper的详细过程》本文讲解SpringBoot整合Dubbo与Zookeeper实现API、Provider、Consumer模式,包含依赖配置、... 目录Spring boot整合dubbo+zookeeper1.创建父工程2.父工程引入依赖3.创建ap

SpringBoot结合Docker进行容器化处理指南

《SpringBoot结合Docker进行容器化处理指南》在当今快速发展的软件工程领域,SpringBoot和Docker已经成为现代Java开发者的必备工具,本文将深入讲解如何将一个SpringBo... 目录前言一、为什么选择 Spring Bootjavascript + docker1. 快速部署与

Spring Boot spring-boot-maven-plugin 参数配置详解(最新推荐)

《SpringBootspring-boot-maven-plugin参数配置详解(最新推荐)》文章介绍了SpringBootMaven插件的5个核心目标(repackage、run、start... 目录一 spring-boot-maven-plugin 插件的5个Goals二 应用场景1 重新打包应用

SpringBoot+EasyExcel实现自定义复杂样式导入导出

《SpringBoot+EasyExcel实现自定义复杂样式导入导出》这篇文章主要为大家详细介绍了SpringBoot如何结果EasyExcel实现自定义复杂样式导入导出功能,文中的示例代码讲解详细,... 目录安装处理自定义导出复杂场景1、列不固定,动态列2、动态下拉3、自定义锁定行/列,添加密码4、合并

Spring Boot集成Druid实现数据源管理与监控的详细步骤

《SpringBoot集成Druid实现数据源管理与监控的详细步骤》本文介绍如何在SpringBoot项目中集成Druid数据库连接池,包括环境搭建、Maven依赖配置、SpringBoot配置文件... 目录1. 引言1.1 环境准备1.2 Druid介绍2. 配置Druid连接池3. 查看Druid监控

Java中读取YAML文件配置信息常见问题及解决方法

《Java中读取YAML文件配置信息常见问题及解决方法》:本文主要介绍Java中读取YAML文件配置信息常见问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录1 使用Spring Boot的@ConfigurationProperties2. 使用@Valu

创建Java keystore文件的完整指南及详细步骤

《创建Javakeystore文件的完整指南及详细步骤》本文详解Java中keystore的创建与配置,涵盖私钥管理、自签名与CA证书生成、SSL/TLS应用,强调安全存储及验证机制,确保通信加密和... 目录1. 秘密键(私钥)的理解与管理私钥的定义与重要性私钥的管理策略私钥的生成与存储2. 证书的创建与

浅析Spring如何控制Bean的加载顺序

《浅析Spring如何控制Bean的加载顺序》在大多数情况下,我们不需要手动控制Bean的加载顺序,因为Spring的IoC容器足够智能,但在某些特殊场景下,这种隐式的依赖关系可能不存在,下面我们就来... 目录核心原则:依赖驱动加载手动控制 Bean 加载顺序的方法方法 1:使用@DependsOn(最直

SpringBoot中如何使用Assert进行断言校验

《SpringBoot中如何使用Assert进行断言校验》Java提供了内置的assert机制,而Spring框架也提供了更强大的Assert工具类来帮助开发者进行参数校验和状态检查,下... 目录前言一、Java 原生assert简介1.1 使用方式1.2 示例代码1.3 优缺点分析二、Spring Fr

java使用protobuf-maven-plugin的插件编译proto文件详解

《java使用protobuf-maven-plugin的插件编译proto文件详解》:本文主要介绍java使用protobuf-maven-plugin的插件编译proto文件,具有很好的参考价... 目录protobuf文件作为数据传输和存储的协议主要介绍在Java使用maven编译proto文件的插件