Ошибка конвертера JavaCard 3 Eclipse, файл экспорта globalplatform.exp пакета org.globalplatform не найден - PullRequest
2 голосов
/ 24 июня 2019

Я разрабатываю простой апплет javacard, используя jcdk 3.0.5u3 с Eclipse Oxygen3.Если я использую простой API из GlobalPlatform, такой как GPSystem.getCardContentState (), это приводит к ошибке.

Я пытался добавить файл globalplatform.jar из GP API v1.1 и v1.6 в часть справочных библиотекИсследователь пакетов.Я также импортировал "org.globalplatform.*" в код.

import org.globalplatform.*;

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

Преобразователь возвращает «файл экспорта global platform.exp пакета org.globalplatform not found» *

1 Ответ

0 голосов
/ 01 июля 2019

Java Card не просто требует стадии компиляции, она также выполняет связывание, которое обычно выполняется как динамическое связывание в JVM обычного приложения Java. В основном он упорядочивает методы и тому подобное, а затем вызывает правильный serial ID. В конце концов, вы не хотите, чтобы ваш апплет содержал строковые имена ваших полей: он взорвал бы требования к памяти, и динамический поиск классов и полей также не является хорошей идеей для такой ограниченной платформы.

Итак, если вы вызываете внешние библиотеки, вам нужно настроить:

  1. файл .jar, содержащий файлы .class для обычного компилятора;
  2. файл .exp, который содержит экспорт сопоставления нормальных имен и идентификаторов классов и полей, специфичных для преобразованных классов вызываемой библиотеки;

Если его еще нет на карте, вам также может понадобиться файл .cap для конкретной версии для загрузки. Однако функциональность GP уже должна присутствовать на карте.

Идентификаторы уникальны только для определенного .cap файла / предварительно загруженного байтового кода. Вот почему вам всегда нужен правильный .exp файл для загруженного кода. Если добавить другое поле, порядок будет другим, и неправильные поля будут связаны, если компоновщик выполняется вообще. Таким образом, наличие правильного .exp файла является требованием для правильного преобразования в .cap для вашего приложения / библиотеки.

Для JCDK я думаю, вам просто нужно правильно настроить -exportpath, так как GP должен быть включен в JCDK.

...