(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

相关文章

JVM 的类初始化机制

前言 当你在 Java 程序中new对象时,有没有考虑过 JVM 是如何把静态的字节码(byte code)转化为运行时对象的呢,这个问题看似简单,但清楚的同学相信也不会太多,这篇文章首先介绍 JVM 类初始化的机制,然后给出几个易出错的实例来分析,帮助大家更好理解这个知识点。 JVM 将字节码转化为运行时对象分为三个阶段,分别是:loading 、Linking、initialization

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

Spring Security--Architecture Overview

1 核心组件 这一节主要介绍一些在Spring Security中常见且核心的Java类,它们之间的依赖,构建起了整个框架。想要理解整个架构,最起码得对这些类眼熟。 1.1 SecurityContextHolder SecurityContextHolder用于存储安全上下文(security context)的信息。当前操作的用户是谁,该用户是否已经被认证,他拥有哪些角色权限…这些都被保

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

Java进阶13讲__第12讲_1/2

多线程、线程池 1.  线程概念 1.1  什么是线程 1.2  线程的好处 2.   创建线程的三种方式 注意事项 2.1  继承Thread类 2.1.1 认识  2.1.2  编码实现  package cn.hdc.oop10.Thread;import org.slf4j.Logger;import org.slf4j.LoggerFactory