【问题标题】:Programming for Java Card 3 platform in Eclipse在 Eclipse 中为 Java Card 3 平台编程
【发布时间】:2015-02-25 12:30:08
【问题描述】:

我使用EclipseJCDE 插件和Java Card 2.2.2 Development Kit 在Eclipse 中为Java Card 2.2.2 编写了程序。

现在我想为我的智能卡(Java Card 3.0.1 Classic Edition)编写程序,但我不知道该怎么做!

我现在可以在 Eclipse 中编写程序还是需要一个新插件?

据我所知,我必须为这个新平台下载一个新的开发工具包。所以我搜索了Oracle。有些地方提到:

Java Card 3 平台由版本 3.0、3.0.1 和 3.0.4 组成 规范和版本 3.0.1、3.0.2、3.0.3 和 3.0.4 开发套件。

于是我下载了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 规范中没有看到的奇怪类!而且它不包含任何框架或 APDU 或...类!

我应该怎么做才能为 Java Card 3.0.1 编写程序?以及如何将它们转换为 .cap 文件? (据我所知,我不能再使用转换器了,对吗?)

【问题讨论】:

    标签: eclipse javacard


    【解决方案1】:

    在 Eclipse 中为 Java Card 目标 3.0.1 开发(在任何平台上):

    1. 获取 Java Card 3.0.3 开发套件(JCDK 3.0.3 实现规范 3.0.1)。你可以得到它here。或者,您可以从 Oracle 网页下载它,但您需要在 Windows 机器上安装 .jar 并获取其内容。
    2. 下载 Java Card 3.0.1 规范 (java_card_kit-3_0_1-doc-spec-rr-15_may_2009.zip)。提取其内容。

    3. 在 Eclipse 中,右键单击您的项目“Build Path --> Add External Archives...”并从 3.0.3 开发工具包目录中添加 lib/api_classic.jar。这将启用代码完成并修复潜在的导入错误。

    4. 在 Eclipse 中右键单击 api_classic.jar --> "Properties --> Javadoc location path:" 并从 3.0.1 规范目录中指定 javacard_specifications-3_0_1-RR/classic/api_classic/。这将为 Java Card API 调用启用 javadoc。

    5. 要将项目的 .class 文件转换为 .cap 文件,请使用ant-javacard。从build.xmlant-javacard.jar所在的目录运行ant。下面是 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>
      

    build.xml 也可以在 Eclipse 的项目下添加。

    1. 使用 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

    【讨论】:

    • 这对我有帮助。非常感谢您的详细回答
    • 非常有帮助的答案,+1。
    【解决方案2】:

    .jar 实际上只是一个安装程序。您必须使用java -jar &lt;file.jar&gt; 运行它才能获得真正的运行时。然后你应该得到 SDK。

    【讨论】:

    • Eclipse 有没有 Java Card 平台 3.0 插件?我可以像 java card 2 那样编写程序并将它们转换为 .cap 文件吗? (右键单击我的包并单击 Eclipse 中的转换)
    • 当然有 JCOP,但棘手的部分是得到它,它不是开源的。
    • 还有别的吗? (免费工具)。我阅读了 Java Card 3 平台开发工具包指南,据我了解,我可以在安装了 Java Card Connected 版的 Net Beans 中编写我的程序,然后将它们编译为 .class 文件,然后使用 Classic 版的i>Converter,将它们转换为Java Card 3.0.1 经典版的.cap 文件。我对吗?顺便说一句,Eclipse 是否有任何插件可以自动完成(就像 eclipse-jcde)
    • 是的,3.0.3 SDK版本应该兼容3.0.1 classic。我不确定 Eclipse 的插件(我想这将是一个答案)。您可以采用适用于 2.2.2 的软件,一般卡结构没有任何意义,SDK 应该大体相同。
    【解决方案3】:

    我在我的eclipse中安装了java_card_kit-classic-3_0_5-u4-win32-bin-do-b_109-03_jun_2020.msi,我可以创建java card3项目,但是它说创建Java Card时出错项目。 javax/xm/bind/JAXBEception

    【讨论】:

    • 我建议发布一个新问题,而不是作为 SO 答案提出问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-07
    • 1970-01-01
    • 2012-01-23
    • 1970-01-01
    • 2014-07-01
    相关资源
    最近更新 更多