我正在使用带有Eclipse Oxygen3的jcdk 3.0.5u3开发一个简单的javacard applet。如果我使用来自GlobalPlatform的简单API,比如GPSystem.getCardContentState()会导致错误。
我已经尝试将GP API v1.1和v1.6中的globalplatform.jar文件添加到包资源管理器的Reference Libraries部分。我还将"org.globalplatform.*"导入到代码中。
import org.globalplatform.*;
if(GPSystem.getCardContentState() == GPSystem.APPLICATION_SELECTABLE){
//Do something
}转换器返回“未找到包org.globalplatform的导出文件全局platform.exp”
发布于 2019-07-01 19:57:42
Java Card不仅仅需要一个编译阶段,它还执行通常在普通Java应用程序的JVM中作为动态链接执行的链接。你不会想让你的Applet包含你的字段的字符串名称:这会大大增加内存需求,而且在这样一个受限的平台上动态查找类和字段也不是一个好主意。
因此,如果调用外部库,则需要配置:
.jar文件;.exp文件;如果卡上还没有该文件,您可能还需要特定于版本的.cap文件才能上载。但是,GP功能应该已经存在于卡上。
ID仅对于特定的.cap文件/预装字节码是唯一的。这就是为什么您总是需要为加载的代码选择正确的.exp文件。如果添加了另一个字段,则顺序会不同,如果链接器执行,则会链接错误的字段。因此,对于您的应用程序/库来说,要正确转换为.cap,就必须拥有正确的.exp文件。
对于JCDK,我认为您只需要配置正确的-exportpath,因为GP应该包含在JCDK中。
https://stackoverflow.com/questions/56736188
复制相似问题