在 Eclipse 中为 Java Card 3 平台编程
Programming for Java Card 3 platform in Eclipse
我使用 EclipseJCDE plugin and Java Card 2.2.2 Development Kit 在 Eclipse 中为 Java Card 2.2.2 编写了程序。
现在我想为我的 Java Card 3.0.1 Classic Edition 智能卡编写程序,但我不知道该怎么做!
我现在可以在 Eclipse 中编写程序吗?或者我需要一个新插件吗?
据我所知,我必须为这个新平台下载一个新的开发工具包。所以我搜索了Oracle。有些地方提到:
The Java Card 3 platform consists of versions 3.0, 3.0.1 and 3.0.4 of
the specifications and versions 3.0.1, 3.0.2, 3.0.3 and 3.0.4 of the
development kit.
所以我下载了 Java Card 3.0.1 规范和 Java Card 3.0.3 开发成套工具。但它并不是真正的开发工具包!它只是一个 .jar 文件!
我应该如何处理这个 .jar 文件?我是否应该将它作为库与 JC 2.2.2 的库一起导入到我的项目中?
还是必须复制到之前开发包的bin目录下?
我真的很困惑!我应该为 Eclipse 添加另一个插件吗?或者我必须改变 mu IDE?
为什么JC 3.0.3开发包和JC 2.2.2开发包不一样?
顺便说一句,我将它添加到我的项目中的 JAR 文件库中,但它包含一些我在 JC 3.0.1 API 规范中没有看到的奇怪 classes!而且它不包含任何框架或 APDU 或... class!
我应该怎么做才能为Java Card 3.0.1 编写程序?以及如何将它们转换为 .cap 文件? (据我所知,我不能再使用 转换器 ,对吗?)
.jar 实际上只是一个安装程序。您必须 运行 它才能使用 java -jar <file.jar>
获得真正的 运行 时间。然后你应该得到SDK。
在 Eclipse 中为 Java Card 目标 3.0.1 开发(在任何平台上):
- 获取JavaCard 3.0.3开发包(JCDK 3.0.3实现规范3.0.1)。你可以得到它here。或者你可以从 Oracle 网页下载它,但是你需要 Windows 机器来安装 .jar 并获取它的内容。
下载 Java Card 3.0.1 规范 (java_card_kit-3_0_1-doc-spec-rr-15_may_2009.zip
)。提取其内容。
在您的项目 "Build Path --> Add External Archives..." 上的 Eclipse right-click 中,并从 3.0.3 开发工具包目录中添加 lib/api_classic.jar
。这将启用代码完成并修复潜在的导入错误。
在 api_classic.jar 上的 Eclipse right-click --> "Properties --> Javadoc location path:" 中并从 3.0.1 规范目录中指定 javacard_specifications-3_0_1-RR/classic/api_classic/
。这将为 Java Card API 调用启用 javadoc。
要将项目的 .class 文件转换为 .cap 文件,请使用 ant-javacard。 运行 ant
来自 build.xml
和 ant-javacard.jar
所在的目录。这是 build.xml 示例:
<?xml version="1.0" encoding="UTF-8"?>
<project name="Hello World" default="Hello" basedir=".">
<target name="jcpro">
<taskdef name="javacard" classname="pro.javacard.ant.JavaCard" classpath="ant-javacard.jar"/>
</target>
<target name="Hello" depends="jcpro">
<javacard>
<cap jckit="jc303_kit/" aid="01020304050607080900" output="testjcard.cap" sources="workspace/testjcard/src/testjcard/">
<applet class="testjcard.JTest" aid="0102030405060708090005"/>
</cap>
</javacard>
</target>
</project>
也可以在Eclipse中将build.xml
添加到你的项目下
- 使用来自 GlobalPlatformPro 的 gp.jar 将生成的 .cap 文件上传到智能卡中:
java -jar GlobalPlatformPro/gp.jar -delete 0102030405060708090005
java -jar GlobalPlatformPro/gp.jar -delete 01020304050607080900
java -jar GlobalPlatformPro/gp.jar -install testjcard.cap
我在我的eclipse中安装了java_card_kit-classic-3_0_5-u4-win32-bin-do-b_109-03_jun_2020.msi,我可以创建java card3项目,但是它说创建[=18时发生错误=] 卡项目。 javax/xm/bind/JAXBEception
我使用 EclipseJCDE plugin and Java Card 2.2.2 Development Kit 在 Eclipse 中为 Java Card 2.2.2 编写了程序。
现在我想为我的 Java Card 3.0.1 Classic Edition 智能卡编写程序,但我不知道该怎么做!
我现在可以在 Eclipse 中编写程序吗?或者我需要一个新插件吗?
据我所知,我必须为这个新平台下载一个新的开发工具包。所以我搜索了Oracle。有些地方提到:
The Java Card 3 platform consists of versions 3.0, 3.0.1 and 3.0.4 of the specifications and versions 3.0.1, 3.0.2, 3.0.3 and 3.0.4 of the development kit.
所以我下载了 Java Card 3.0.1 规范和 Java Card 3.0.3 开发成套工具。但它并不是真正的开发工具包!它只是一个 .jar 文件!
我应该如何处理这个 .jar 文件?我是否应该将它作为库与 JC 2.2.2 的库一起导入到我的项目中?
还是必须复制到之前开发包的bin目录下?
我真的很困惑!我应该为 Eclipse 添加另一个插件吗?或者我必须改变 mu IDE?
为什么JC 3.0.3开发包和JC 2.2.2开发包不一样?
顺便说一句,我将它添加到我的项目中的 JAR 文件库中,但它包含一些我在 JC 3.0.1 API 规范中没有看到的奇怪 classes!而且它不包含任何框架或 APDU 或... class!
我应该怎么做才能为Java Card 3.0.1 编写程序?以及如何将它们转换为 .cap 文件? (据我所知,我不能再使用 转换器 ,对吗?)
.jar 实际上只是一个安装程序。您必须 运行 它才能使用 java -jar <file.jar>
获得真正的 运行 时间。然后你应该得到SDK。
在 Eclipse 中为 Java Card 目标 3.0.1 开发(在任何平台上):
- 获取JavaCard 3.0.3开发包(JCDK 3.0.3实现规范3.0.1)。你可以得到它here。或者你可以从 Oracle 网页下载它,但是你需要 Windows 机器来安装 .jar 并获取它的内容。
下载 Java Card 3.0.1 规范 (
java_card_kit-3_0_1-doc-spec-rr-15_may_2009.zip
)。提取其内容。在您的项目 "Build Path --> Add External Archives..." 上的 Eclipse right-click 中,并从 3.0.3 开发工具包目录中添加
lib/api_classic.jar
。这将启用代码完成并修复潜在的导入错误。在 api_classic.jar 上的 Eclipse right-click --> "Properties --> Javadoc location path:" 中并从 3.0.1 规范目录中指定
javacard_specifications-3_0_1-RR/classic/api_classic/
。这将为 Java Card API 调用启用 javadoc。要将项目的 .class 文件转换为 .cap 文件,请使用 ant-javacard。 运行
ant
来自build.xml
和ant-javacard.jar
所在的目录。这是 build.xml 示例:<?xml version="1.0" encoding="UTF-8"?> <project name="Hello World" default="Hello" basedir="."> <target name="jcpro"> <taskdef name="javacard" classname="pro.javacard.ant.JavaCard" classpath="ant-javacard.jar"/> </target> <target name="Hello" depends="jcpro"> <javacard> <cap jckit="jc303_kit/" aid="01020304050607080900" output="testjcard.cap" sources="workspace/testjcard/src/testjcard/"> <applet class="testjcard.JTest" aid="0102030405060708090005"/> </cap> </javacard> </target> </project>
也可以在Eclipse中将build.xml
添加到你的项目下
- 使用来自 GlobalPlatformPro 的 gp.jar 将生成的 .cap 文件上传到智能卡中:
java -jar GlobalPlatformPro/gp.jar -delete 0102030405060708090005 java -jar GlobalPlatformPro/gp.jar -delete 01020304050607080900 java -jar GlobalPlatformPro/gp.jar -install testjcard.cap
我在我的eclipse中安装了java_card_kit-classic-3_0_5-u4-win32-bin-do-b_109-03_jun_2020.msi,我可以创建java card3项目,但是它说创建[=18时发生错误=] 卡项目。 javax/xm/bind/JAXBEception