0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Java Card3.2を試す

Last updated at Posted at 2025-07-29

公式ドキュメント

  • Development Kit Tools User Guide
  • Developer Kit Simulator User Guide

https://docs.oracle.com/en/java/javacard/3.2/jctug/introduction.html
https://docs.oracle.com/en/java/javacard/3.2/jcdksu/introduction.html

実行環境

OS:Windows11
ターミナル:コマンドプロンプト

ダウンロード

  • Java Development Kit (JDK)
    JDK17をダウンロードする

  • Java Card Development Kit Tools
    バージョン25.0をダウンロードする

  • Java Card Development Kit Simulator
    バージョン25.0をダウンロードする

ダウンロードしたzipファイルは解凍して任意のフォルダに置く
※ フォルダ名にスペースを入れるとエラーが出る

パスの設定

システム環境変数を設定する

JAVA_HOME=path/to/jdk-17
JC_HOME_TOOLS=path/to/Java Card Development Kit Tools
JC_HOME_SIMULATOR=path/to/Java Card Development Kit Simulator

シミュレータの設定

以下のコマンドでシミュレータの初期設定を行う

java -jar %JC_HOME_SIMULATOR%\tools\Configurator.jar -binary %JC_HOME_SIMULATOR%\runtime\bin\jcsw.exe -SCP-keyset 10 1111111111111111111111111111111111111111111111111111111111111111 2222222222222222222222222222222222222222222222222222222222222222 3333333333333333333333333333333333333333333333333333333333333333 -global-pin 01020304050f 03

各パラメータは以下を参考

プロジェクトの準備

プロジェクト用のディレクトリを作成

mkdir MyProject && cd MyProject

アプレットフォルダとクライアントフォルダを作成

mkdir applet client

MyProject配下にclient.config.propertiesを作成する
パラメータはシミュレータ初期設定時に設定したものを使う

client.config.properties
A000000151000000_scp03enc_10=1111111111111111111111111111111111111111111111111111111111111111 
A000000151000000_scp03mac_10=2222222222222222222222222222222222222222222222222222222222222222 
A000000151000000_scp03dek_10=3333333333333333333333333333333333333333333333333333333333333333

アプレットの作成

アプレットフォルダに移動

cd applet

アプレット用のパッケージフォルダを作成
以下は一例

mkdir src\com\github\family36\javacard\myapplet

アプレットのjavaファイルをsrc\com\github\family36\javacard\myapplet配下に作成し、コードを記入する

MyApplet.java
package com.github.family36.javacard.myapplet;

...

javaファイルをコンパイルしてクラスファイルを作成する
このコマンドはappletディレクトリで実行する

"%JAVA_HOME%\bin\javac.exe" -g -d .\bin --release 10 -cp "%JC_HOME_TOOLS%\lib\api_classic-3.2.0.jar;%JC_HOME_TOOLS%\lib\api_classic_annotations-3.2.0.jar" src\com\github\family36\javacard\myapplet\MyApplet.java

CAPファイル変換用の設定ファイルを作成する

mkdir configurations && cd configurations

configurations配下にMyApplet.confを作成する
以下は一例

MyApplet.conf
-i
-classdir ../bin
-applet 0xA0:0x00:0x00:0x00:0x62:0x03:0x01:0x0C:0x01:0x01 com.github.family36.javacard.myapplet.MyApplet
-out CAP JCA EXP
-d ../deliverables/MyApplet
-debug
-target 3.2.0
com.github.family36.javacard.myapplet
0xA0:0x00:0x00:0x00:0x62:0x03:0x01:0x0C:0x01 1.0

クラスファイルをCAPファイルに変換する
このコマンドはconfigurationsディレクトリで実行する

"%JC_HOME_TOOLS%\bin\converter.bat" -config MyApplet.conf

クライアントファイルの作成

クライアントフォルダに移動

cd ../../client
mkdir src\com\github\family36\javacard\myapplet

クライアントのjavaファイルをsrc\com\github\family36\javacard\myapplet配下に作成し、コードを記入する

AMSMyAppletClient.java
package com.github.family36.javacard.myapplet;

...

javaファイルをコンパイルしてクラスファイルを作成する
このコマンドはclientディレクトリで実行する

set EXT_MODULEPATH=%JC_HOME_SIMULATOR%\client\AMService;%JC_HOME_SIMULATOR%\client\COMService
"%JAVA_HOME%\bin\javac" -d .\bin --release 10 -cp "%JC_HOME_SIMULATOR%\client\AMService\amservice.jar;%JC_HOME_SIMULATOR%\client\COMService\socketprovider.jar" --module-path %EXT_MODULEPATH% --add-modules ALL-MODULE-PATH src\com\github\family36\javacard\myapplet\AMSMyAppletClient.java

シミュレーションの実行

新しいコマンドプロンプトを立ち上げ、シミュレータを起動

"%JC_HOME_SIMULATOR%\runtime\bin\jcsw.exe"

クライアントコードを実行する

set ARGS_CLIENT=-cap=absolute_path\to\MyApplet.cap -props=..\client.config.properties
"%JAVA_HOME%\bin\java" -cp "bin;%JC_HOME_SIMULATOR%\client\AMService\amservice.jar;%JC_HOME_SIMULATOR%\client\COMService\socketprovider.jar" --module-path %EXT_MODULEPATH% --add-modules ALL-MODULE-PATH com.github.family36.javacard.myapplet.AMSMyAppletClient %ARGS_CLIENT%
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?