【发布时间】:2017-05-26 17:58:43
【问题描述】:
我在两个不同的项目 Java Card 2.2.2 中编写了一个小程序 Applet1 在一个包 firstApplet 中,另一个小程序 Applet2 在一个包 secondApplet 中。
我想在第二个小程序中使用第一个小程序的一些功能。
所以在Applet2 中,将第一个项目添加到第二个项目的Java Build Path 之后,它看起来像:
package secondApplet;
import javacard.framework.APDU;
...
import firstApplet.Applet1;
public class Applet2 extends Applet {
...
}
首先,使用 Java Card 工具converter,我使用以下命令得到一个.exp 文件:
converter -out EXP -exportpath ..\api_export_files -applet AID Applet1 -classdir ..\..\ ... \Applet1\bin firstApplet PID 1.1
其中AID 是小程序ID,PID 是程序包ID。它给了我一个firstApplet.exp 没有错误。
这个命令的输出是:
parsing C:\ ... \bin\firstApplet\Applet1.class
converting firstApplet.Applet1
writing C:\ ... \bin\firstApplet\javacard\firstApplet.exp
但是,当我尝试获取 Applet2 的 CAP 文件时,它返回错误:
error : secondApplet.Applet2: class firstApplet.Applet1 not found in export file firstApplet.exp.
我真的不明白出了什么问题,我认为 .exp 生成得很好,我错过了什么吗?
【问题讨论】:
-
你在构建Applet2的时候把生成的exp文件放到正确的地方了吗?
-
是的,我认为它在正确的位置,因为我试图移动它,然后收到错误消息:
firstApplet.exp not found -
您是否将
-exportpath设置为C:\...\bin?能否提供Applet2编译的命令? -
好吧,我不是,但现在我又犯了一个错误。所以,我获取 Applet2 的 CAP 文件的命令行是:
converter -out CAP -exportpath ..\api_export_files C:\...\bin -applet 0x01:0x02:0x03:0x04:0x05:0x06:0x07:0x08:0x09:0x00:0x00 Applet2 -classdir ..\..\ ... \Applet2\bin secondApplet 0x01:0x02:0x03:0x04:0x05:0x06:0x07:0x08:0x09 1.1,我得到error: invalid AID -applet但我检查了,它是正确的 AID(与 Applet1 不同)。我怀疑这是因为我在-exportpathoptions 中添加了两个参数,但如果我调用它两次,它会删除之前的调用... Ty 提前 -
用分号分隔路径:
-exportpath ..\api_export_files;C:\...\bin
标签: java compilation applet dependencies javacard