首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaCard 3 Eclipse转换器错误,找不到包org.globalplatform的导出文件globalplatform.exp

JavaCard 3 Eclipse转换器错误,找不到包org.globalplatform的导出文件globalplatform.exp
EN

Stack Overflow用户
提问于 2019-06-24 20:05:49
回答 1查看 515关注 0票数 2

我正在使用带有Eclipse Oxygen3的jcdk 3.0.5u3开发一个简单的javacard applet。如果我使用来自GlobalPlatform的简单API,比如GPSystem.getCardContentState()会导致错误。

我已经尝试将GP API v1.1v1.6中的globalplatform.jar文件添加到包资源管理器的Reference Libraries部分。我还将"org.globalplatform.*"导入到代码中。

代码语言:javascript
复制
import org.globalplatform.*;

if(GPSystem.getCardContentState() == GPSystem.APPLICATION_SELECTABLE){
//Do something
}

转换器返回“未找到包org.globalplatform的导出文件全局platform.exp”

EN

回答 1

Stack Overflow用户

发布于 2019-07-01 19:57:42

Java Card不仅仅需要一个编译阶段,它还执行通常在普通Java应用程序的JVM中作为动态链接执行的链接。你不会想让你的Applet包含你的字段的字符串名称:这会大大增加内存需求,而且在这样一个受限的平台上动态查找类和字段也不是一个好主意。

因此,如果调用外部库,则需要配置:

  1. 包含普通编译器的.class文件的.jar文件;
  2. 包含普通名称的映射以及特定于被调用库的已转换类的类ID和字段的导出的.exp文件;

如果卡上还没有该文件,您可能还需要特定于版本的.cap文件才能上载。但是,GP功能应该已经存在于卡上。

ID仅对于特定的.cap文件/预装字节码是唯一的。这就是为什么您总是需要为加载的代码选择正确的.exp文件。如果添加了另一个字段,则顺序会不同,如果链接器执行,则会链接错误的字段。因此,对于您的应用程序/库来说,要正确转换为.cap,就必须拥有正确的.exp文件。

对于JCDK,我认为您只需要配置正确的-exportpath,因为GP应该包含在JCDK中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56736188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档