2017-12-20 13 views
1

following guideに従って、Java Card Platform Development Kitの新しいリリースをインストールしました。これには、JCDKのバージョン3.0.5u2だけでなく、すべての前提条件が含まれます。ヘッドアップとして、私は2つの異なるコンピュータ(1つはWin7、もう1つはWin10)にインストールし、両方ですべてを再インストールしました。EclipseでJava Cardのサンプルプロジェクトを構築できない

私が遭遇している問題は、サンプルプロジェクトのどれも正しく構築されないということです。私はHelloWorldサンプルをビルドしようとすると、例えば、私はビルドコンソールに印刷され、次のテキストを取得:

[ INFO: ] Converter [v3.0.5] 
[ INFO: ]  Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved. 

[ INFO: ] conversion completed with 0 errors and 0 warnings. 
[ INFO: ] Converter [v3.0.5] 
[ INFO: ]  Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved. 

[ INFO: ] conversion completed with 0 errors and 0 warnings. 
Missing file containing component hashes. 
usage: scriptgen [-options] -hashfile <hash file path> <cap File Path> 
where options include: 
-help   Print this message and exit. 
-o <filename> Output filename. default: stdout 
-version  Print version number and exit. 
-nobanner  Do not print banner. 
-nobeginend  Suppress "CAP_BEGIN", "CAP_END" APDU commands. 
-package <pkgname> Package name. 

通常のコンソールは、これは言ってありますが:

Executing "$JC_CLASSIC_HOME\bin/converter.bat" -debug -nobanner -out CAP JCA -classdir "$JC_CLASSIC_HOME\samples\classic_applets\HelloWorld\applet\bin" -d "$JC_CLASSIC_HOME\samples\classic_applets\HelloWorld\applet\deliverables" -exportpath "$JC_CLASSIC_HOME\api_export_files" -applet 0xA0:0x00:0x00:0x00:0x62:0x03:0x01:0x0C:0x01:0x01 com.sun.jcclassic.samples.helloworld.HelloWorld com.sun.jcclassic.samples.helloworld 0xA0:0x00:0x00:0x00:0x62:0x03:0x01:0x0C:0x01 1.0 
Executing "$JC_CLASSIC_HOME\bin/scriptgen.bat" -package com.sun.jcclassic.samples.helloworld -o "$JC_CLASSIC_HOME\samples\classic_applets\HelloWorld\applet\apdu_scripts/cap-com.sun.jcclassic.samples.helloworld.script" "$JC_CLASSIC_HOME\samples\classic_applets\HelloWorld\applet\deliverables/com/sun/jcclassic/samples/helloworld/javacard/helloworld.cap" 
java.io.FileNotFoundException: $JC_CLASSIC_HOME\samples\classic_applets\HelloWorld\applet\apdu_scripts\cap-com.sun.jcclassic.samples.helloworld.script (The system cannot find the file specified) 
    at java.io.FileInputStream.open(Native Method) 
    ... (stack trace) 

さて、私は」私は100%確信していませんが、バージョン3.0.5u1がインストールされていたら、サンプルプロジェクトをビルドできたと思います。

+0

ていますか?私はそれが例外で名前によって存在するとは思わないでしょう...あなたの環境変数をチェックし、変数を設定してください! –

+0

私は実際のパスのプレースホルダとして上記の投稿に$ JC_CLASSIC_HOMEを使用しています。 JC_CLASSIC_HOMEは実際にはC:¥Program Files(x86)¥Oracle¥Java Card Development Kit 3.0.5u2¥を指す環境変数です。 – user2352164

+0

DOS/Windowsは '%JC_CLASSIC_HOME%'を使用します。私はまだこれがちょうどenvだと思う。 var。 –

答えて

0

Java Card Classic Development Kit 3.0.5u2(jcdk)Eclipse Pluginのビルドプロセスが壊れているようです。 Javaのカードアプレットのビルド時には、JCDKインストールディレクトリのbinサブディレクトリにある3つのスクリプトが実行される(日食にデフォルトのアプレットの設定を使用している場合):

  1. エクスポートファイル*の.EXP
  2. を生成converter.bat
  3. converter.bat生成キャップ(およびjca)ファイル
  4. scriptgen.bat Javaカードにアプレットをインストールするためのスクリプトファイルを生成します。

問題は、scriptgenには、アプレットコンポーネントのハッシュを含むハッシュファイルが必要です。 jcdk libフォルダのtools.jarクラスcom.sun.javacard.scriptgen.Mainを逆コンパイルすると、これが表示されます。

このハッシュファイルは、Eclipseのビルド処理中に生成されず、対応するプログラムオプション "-hashfile <ハッシュファイル>"で呼び出されるscriptgenスクリプトも生成されません。唯一の回避策は、コンソール上でjcdkツールを手動で使用することです。あなたのためにEclipseのコンソールの出力を使用して、あなたのニーズにそれを採用することができます。

Executing E:\eclipse-oxygen-64bit\JCDKit_305u2\bin/converter.bat -i -debug -out EXP -classdir G:\eclipse_javacard\workspace\TestJCDKApplet\bin -d G:\eclipse_javacard\workspace\TestJCDKApplet\deliverables -exportpath E:\eclipse-oxygen-64bit\JCDKit_305u2\\api_export_files -applet 0xD0:0x00:0x00:0x00:0x01:0x01:0x01 test.jcdk.applet.TestApplet test.jcdk.applet 0xD0:0x00:0x00:0x00:0x01:0x01 1.0 
Executing E:\eclipse-oxygen-64bit\JCDKit_305u2\bin/converter.bat -i -debug -out CAP JCA -classdir G:\eclipse_javacard\workspace\TestJCDKApplet\bin -d G:\eclipse_javacard\workspace\TestJCDKApplet\deliverables -exportpath E:\eclipse-oxygen-64bit\JCDKit_305u2\\api_export_files -applet 0xD0:0x00:0x00:0x00:0x01:0x01:0x01 test.jcdk.applet.TestApplet test.jcdk.applet 0xD0:0x00:0x00:0x00:0x01:0x01 1.0 
Executing E:\eclipse-oxygen-64bit\JCDKit_305u2\bin/scriptgen.bat -package test.jcdk.applet -o G:\eclipse_javacard\workspace\TestJCDKApplet\apdu_scripts/cap-test.jcdk.applet.script G:\eclipse_javacard\workspace\TestJCDKApplet\deliverables/test/jcdk/applet/javacard/applet.cap 

は(最初の2つのスクリプトが変更されないだけで、最後の2を、リストされている)必要なスクリプトファイルを生成するように変更:

G:\eclipse_javacard\workspace\TestJCDKApplet>E:\eclipse-oxygen-64bit\JCDKit_305u2\bin\verifycap.bat -outfile applet.hash E:\eclipse-oxygen-64bit\JCDKit_305u2\api_export_files\java\lang\javacard\lang.exp E:\eclipse-oxygen-64bit\JCDKit_305u2\api_export_files\javacard\framework\javacard\framework.exp .\deliverables\test\jcdk\applet\javacard\applet.exp .\deliverables\test\jcdk\applet\javacard\applet.cap 
[ INFO: ] Verifier [v3.0.5] 
[ INFO: ]  Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved. 


[ INFO: ] Verifying CAP file .\deliverables\test\jcdk\applet\javacard\applet.cap 
[ INFO: ] Digest for test/jcdk/applet/javacard/Header.cap    [SHA-256: 22e589e7bbb45e420c2a17d5b8abcc437c52f00ecfb15b48ed3257f87eff62f9] 
[ INFO: ] Digest for test/jcdk/applet/javacard/Directory.cap   [SHA-256: bc72a8594664c9720c38afab7c87b7dda894088f53faefcac548463a4186fbe9] 
[ INFO: ] Digest for test/jcdk/applet/javacard/Import.cap    [SHA-256: e58492b256b4af8d7f1860f18e57c5336e254a618c2518c987dcefb33db0a8d0] 
[ INFO: ] Digest for test/jcdk/applet/javacard/ConstantPool.cap   [SHA-256: 6c5bf615cd3746d52c815e8264b910a41a94217161862a7520087799fd03098b] 
[ INFO: ] Digest for test/jcdk/applet/javacard/StaticField.cap   [SHA-256: 1ec76ec50280f5d8822179bb1b268ae7c2383d9fbe4d6c2beb427090dbf53dfd] 
[ INFO: ] Digest for test/jcdk/applet/javacard/RefLocation.cap   [SHA-256: b2b3f5e23eee662b8c406212d5cb291959a8eeddb92e58b9a45941c0b91388be] 
[ INFO: ] Digest for test/jcdk/applet/javacard/Descriptor.cap   [SHA-256: 292e4bd46d836b8501a19a9ea92b1ec976eca1b4920bb03499236284d17be2d7] 
[ INFO: ] Digest for test/jcdk/applet/javacard/Class.cap    [SHA-256: 6c68abd77e3481a00ae2462cfc8f416ae38d4d0e4b02c685145c39d30d132526] 
[ INFO: ] Digest for test/jcdk/applet/javacard/Debug.cap    [SHA-256: 7341f35fee494363bb8b84e8c132399a33a0bb4d39fd9192e92be680c08019d3] 
[ INFO: ] Digest for test/jcdk/applet/javacard/Method.cap    [SHA-256: 651231359c6bb65fbcb0e3a49f52cee1a682ed7e97610365b374583638757365] 
[ INFO: ] Digest for test/jcdk/applet/javacard/Applet.cap    [SHA-256: e1de8850f009796b9b991757dd378353128e10d4bc6400e5bbd970516bf187f1] 
[ INFO: ] Verification completed with 0 warnings and 0 errors. 

(注簡単なテストアプレットの

出力例:アプレットで使用されるjcdkエクスポートファイルへのパスを追加する必要があります。これらのファイルは、javaカードパッケージの設定で詳細な出力を有効にし、コンソール出力から参照されたexpファイルを検索することで見つけることができます)。

その後リースで次のコマンドでインストールスクリプトを生成することができます:あなたは$ JC_CLASSIC_HOMEがうまく展開されていることを確認してください

G:\eclipse_javacard\workspace\TestJCDKApplet>E:\eclipse-oxygen-64bit\JCDKit_305u2\bin/scriptgen.bat -package test.jcdk.applet -o 

G:\eclipse_javacard\workspace\TestJCDKApplet\apdu_scripts/cap-test.jcdk.applet.script G:\eclipse_javacard\workspace\TestJCDKApplet\deliverables/test/jcdk/applet/javacard/applet.cap -hashfile applet.hash 
ScriptGen [v3.0.5] 
    Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved. 


APDU script file for CAP file download generated. 
+1

これは質問に対する答えを提供しません。十分な[評判](https://stackoverflow.com/help/whats-reputation)があれば、[投稿にコメントする]ことができます(https://stackoverflow.com/help/privileges/comment)。代わりに、[質問者からの明確化を必要としない回答を提供する](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an- i-do-代わりに)。 - [レビューから](/レビュー/低品質の投稿/ 18942164) – kometen

関連する問題