Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

-exportpath is not properly set in converter for external jars #49

Open
syarramsetty-skyhook opened this issue Jan 10, 2019 · 4 comments

Comments

@syarramsetty-skyhook
Copy link

I have two jar files with .exp files (USIM.jar and uicc.jar) to build an USIM applet.
This is the snippet of my build.xml

    <javacard>
      <cap jckit="ext/ant/sdks/jc305u3_kit"
           aid="f2:76:a2:88:bc:fb:a6:9d:34:f3:10"
           output="build/UsimApplet.cap"
           sources="src"
           classes="build"
           version="1.0">
        <applet class="UsimApplet" aid="f2:76:a2:88:bc:fb:a6:9d:34:f3:10:01"/>
        <import jar="USIM-API.jar:uicc.jar"/>
      </cap>
    </javacard>

It compiles OK. But converter fails unless I explicitly extract .exp files from above jars and put them in a directory and define import target with both jar and exps attributes.

@martinpaljak
Copy link
Owner

You should have two import statements

@syarramsetty-skyhook
Copy link
Author

I tried that one too. Ant-javacard's converter task adds exportpath of jcre. Because of this, converter doesnt search jars in classpath for exp files. I can upload ant -v dump tomorrow. Thanks.

@martinpaljak
Copy link
Owner

First the colon notation is not supposed to work in the first place, just a single jar for jar option.

I'm building applets with two dependencies and it works flawlessly. What is the content (and source) of those jar files?

@syarramsetty-skyhook
Copy link
Author

syarramsetty-skyhook commented Jan 11, 2019

build.xml
<?xml version="1.0" encoding="UTF-8"?>
<project name="JavaCard and USIM ToolkitApplet" default="dist" basedir=".">
  <description>Builds the project. </description>
  <target name="dist" description="generate the distribution" >
    <tstamp/>
    <ant dir="ext/ant"/>
    <!-- Create the distribution directory -->
    <taskdef name="javacard" classname="pro.javacard.ant.JavaCard" classpath="ext/ant/ant-javacard.jar"/>
    <javacard>
      <cap jckit="ext/ant/sdks/jc305u3_kit"
           javaversion="1.6" 
           aid="f2:76:a2:88:bc:fb:a6:9d:34:f3:10"
           output="build/ToolkitTraining.cap"
           sources="src"
           classes="build"
           export="build"
           jar="lib/ToolkitTraining.jar"
           jca="build/ToolkitTraining.jca"
           version="1.0">
        <applet class="com.skyhook.training.ToolkitTraining" aid="f2:76:a2:88:bc:fb:a6:9d:34:f3:10:01"/>
        <import jar="usimtoolkit/uicc-api-for-java-card-REL-8.jar"/>
        <import jar="usimtoolkit/usim-api-for-java-card-REL-8.jar"/>
      </cap>
    </javacard>
  </target>
  <target name="clean" description="clean up">
    <!-- Delete the built applet -->
    <delete dir="build"/>
    <delete dir="lib"/>
  </target>
</project>
satya-mbp:usimtoolkit> jar tvf uicc-api-for-java-card-REL-8.jar 
     0 Tue May 25 11:03:56 EDT 2010 META-INF/
   102 Tue May 25 11:03:54 EDT 2010 META-INF/MANIFEST.MF
     0 Tue May 25 11:03:52 EDT 2010 uicc/
     0 Tue May 25 11:03:52 EDT 2010 uicc/access/
     0 Tue May 25 11:03:54 EDT 2010 uicc/access/bertlvfile/
     0 Tue May 25 11:03:56 EDT 2010 uicc/access/bertlvfile/javacard/
     0 Tue May 25 11:03:54 EDT 2010 uicc/access/fileadministration/
     0 Tue May 25 11:03:54 EDT 2010 uicc/access/fileadministration/javacard/
     0 Tue May 25 11:03:52 EDT 2010 uicc/access/javacard/
     0 Tue May 25 11:03:54 EDT 2010 uicc/system/
     0 Tue May 25 11:03:54 EDT 2010 uicc/system/javacard/
     0 Tue May 25 11:03:52 EDT 2010 uicc/toolkit/
     0 Tue May 25 11:03:54 EDT 2010 uicc/toolkit/javacard/
   759 Tue May 25 11:03:52 EDT 2010 uicc/access/FileView.class
  2246 Tue May 25 11:03:52 EDT 2010 uicc/access/UICCConstants.class
  1231 Tue May 25 11:03:52 EDT 2010 uicc/access/UICCException.class
   893 Tue May 25 11:03:52 EDT 2010 uicc/access/UICCSystem.class
   239 Tue May 25 11:03:52 EDT 2010 uicc/access/bertlvfile/AdminBERTLVFileView.class
   286 Tue May 25 11:03:52 EDT 2010 uicc/access/bertlvfile/BERTLVFileView.class
  2854 Tue May 25 11:03:56 EDT 2010 uicc/access/bertlvfile/javacard/bertlvfile.cap
   972 Tue May 25 11:03:54 EDT 2010 uicc/access/bertlvfile/javacard/bertlvfile.exp
   722 Tue May 25 11:03:52 EDT 2010 uicc/access/fileadministration/AdminException.class
   488 Tue May 25 11:03:52 EDT 2010 uicc/access/fileadministration/AdminFileView.class
  1047 Tue May 25 11:03:52 EDT 2010 uicc/access/fileadministration/AdminFileViewBuilder.class
  2899 Tue May 25 11:03:54 EDT 2010 uicc/access/fileadministration/javacard/fileadministration.cap
  1541 Tue May 25 11:03:54 EDT 2010 uicc/access/fileadministration/javacard/fileadministration.exp
  2403 Tue May 25 11:03:52 EDT 2010 uicc/access/javacard/access.cap
  3962 Tue May 25 11:03:52 EDT 2010 uicc/access/javacard/access.exp
   512 Tue May 25 11:03:52 EDT 2010 uicc/access/package.html
   891 Tue May 25 11:03:52 EDT 2010 uicc/system/HandlerBuilder.class
   358 Tue May 25 11:03:52 EDT 2010 uicc/system/UICCPlatform.class
  2176 Tue May 25 11:03:54 EDT 2010 uicc/system/javacard/system.cap
   447 Tue May 25 11:03:54 EDT 2010 uicc/system/javacard/system.exp
   387 Tue May 25 11:03:52 EDT 2010 uicc/system/package.html
   222 Tue May 25 11:03:52 EDT 2010 uicc/toolkit/BERTLVEditHandler.class
   207 Tue May 25 11:03:52 EDT 2010 uicc/toolkit/BERTLVViewHandler.class
   605 Tue May 25 11:03:52 EDT 2010 uicc/toolkit/EditHandler.class
   339 Tue May 25 11:03:52 EDT 2010 uicc/toolkit/EnvelopeHandler.class
   463 Tue May 25 11:03:52 EDT 2010 uicc/toolkit/EnvelopeHandlerSystem.class
   335 Tue May 25 11:03:52 EDT 2010 uicc/toolkit/EnvelopeResponseHandler.class
   495 Tue May 25 11:03:52 EDT 2010 uicc/toolkit/EnvelopeResponseHandlerSystem.class
   546 Tue May 25 11:03:52 EDT 2010 uicc/toolkit/ProactiveHandler.class
   467 Tue May 25 11:03:52 EDT 2010 uicc/toolkit/ProactiveHandlerSystem.class
   761 Tue May 25 11:03:52 EDT 2010 uicc/toolkit/ProactiveResponseHandler.class
   499 Tue May 25 11:03:52 EDT 2010 uicc/toolkit/ProactiveResponseHandlerSystem.class
  6685 Tue May 25 11:03:52 EDT 2010 uicc/toolkit/TerminalProfile.class
  8629 Tue May 25 11:03:52 EDT 2010 uicc/toolkit/ToolkitConstants.class
  1241 Tue May 25 11:03:52 EDT 2010 uicc/toolkit/ToolkitException.class
   252 Tue May 25 11:03:52 EDT 2010 uicc/toolkit/ToolkitInterface.class
  1173 Tue May 25 11:03:52 EDT 2010 uicc/toolkit/ToolkitRegistry.class
   553 Tue May 25 11:03:52 EDT 2010 uicc/toolkit/ToolkitRegistrySystem.class
   773 Tue May 25 11:03:52 EDT 2010 uicc/toolkit/ViewHandler.class
  5237 Tue May 25 11:03:52 EDT 2010 uicc/toolkit/javacard/toolkit.cap
 19231 Tue May 25 11:03:52 EDT 2010 uicc/toolkit/javacard/toolkit.exp
   661 Tue May 25 11:03:52 EDT 2010 uicc/toolkit/package.html
satya-mbp:usimtoolkit> 
satya-mbp:usimtoolkit> jar tvf usim-api-for-java-card-REL-8.jar 
     0 Mon Jan 04 11:39:50 EST 2010 META-INF/
   102 Mon Jan 04 11:39:48 EST 2010 META-INF/MANIFEST.MF
     0 Mon Jan 04 11:39:26 EST 2010 uicc/
     0 Mon Jan 04 11:39:26 EST 2010 uicc/usim/
     0 Mon Jan 04 11:39:26 EST 2010 uicc/usim/access/
     0 Mon Jan 04 11:39:48 EST 2010 uicc/usim/access/javacard/
     0 Mon Jan 04 11:39:50 EST 2010 uicc/usim/geolocation/
     0 Mon Jan 04 11:39:50 EST 2010 uicc/usim/geolocation/javacard/
     0 Mon Jan 04 11:39:48 EST 2010 uicc/usim/toolkit/
     0 Mon Jan 04 11:39:48 EST 2010 uicc/usim/toolkit/javacard/
  3854 Mon Jan 04 11:39:26 EST 2010 uicc/usim/access/SIMConstants.class
  4629 Mon Jan 04 11:39:26 EST 2010 uicc/usim/access/USIMConstants.class
  2117 Mon Jan 04 11:39:48 EST 2010 uicc/usim/access/javacard/access.cap
  7529 Mon Jan 04 11:39:48 EST 2010 uicc/usim/access/javacard/access.exp
   558 Mon Jan 04 11:39:26 EST 2010 uicc/usim/access/package.html
  1337 Mon Jan 04 11:39:26 EST 2010 uicc/usim/geolocation/GeoLocation.class
   597 Mon Jan 04 11:39:26 EST 2010 uicc/usim/geolocation/GeoLocationBuilder.class
   712 Mon Jan 04 11:39:26 EST 2010 uicc/usim/geolocation/GeoLocationException.class
   266 Mon Jan 04 11:39:26 EST 2010 uicc/usim/geolocation/GeoLocationInfo.class
  2570 Mon Jan 04 11:39:50 EST 2010 uicc/usim/geolocation/javacard/geolocation.cap
  2170 Mon Jan 04 11:39:50 EST 2010 uicc/usim/geolocation/javacard/geolocation.exp
  1830 Mon Jan 04 11:39:26 EST 2010 uicc/usim/toolkit/ToolkitConstants.class
   466 Mon Jan 04 11:39:26 EST 2010 uicc/usim/toolkit/USATEnvelopeHandler.class
   494 Mon Jan 04 11:39:26 EST 2010 uicc/usim/toolkit/USATEnvelopeHandlerSystem.class
  2125 Mon Jan 04 11:39:26 EST 2010 uicc/usim/toolkit/USATTerminalProfile.class
  2606 Mon Jan 04 11:39:48 EST 2010 uicc/usim/toolkit/javacard/toolkit.cap
  4848 Mon Jan 04 11:39:48 EST 2010 uicc/usim/toolkit/javacard/toolkit.exp
   706 Mon Jan 04 11:39:26 EST 2010 uicc/usim/toolkit/package.html
satya-mbp:usimtoolkit> 
ant -v

  [compile] com/skyhook/training/ToolkitTraining.java added as com/skyhook/training/ToolkitTraining.class doesn't exist.
  [compile] Compiling 1 source file to /Users/satya/UsimToolkitTraining.old/build
  [compile] Using external javac compiler
  [compile] Compilation arguments:
  [compile] '-d'
  [compile] '/Users/satya/UsimToolkitTraining.old/build'
  [compile] '-classpath'
  [compile] '/Users/satya/UsimToolkitTraining.old/build:/Users/satya/UsimToolkitTraining.old/ext/ant/sdks/jc305u3_kit/lib/api_classic.jar:/Users/satya/UsimToolkitTraining.old/usimtoolkit/uicc-api-for-java-card-REL-8.jar:/Users/satya/UsimToolkitTraining.old/usimtoolkit/usim-api-for-java-card-REL-8.jar'
  [compile] '-sourcepath'
  [compile] '/Users/satya/UsimToolkitTraining.old/src'
  [compile] '-target'
  [compile] '1.6'
  [compile] '-g'
  [compile] '-Xlint'
  [compile] '-Xlint:-options'
  [compile] '-Xlint:-serial'
  [compile] '-source'
  [compile] '1.6'

  [convert] command: /Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/bin/java -Djc.home=ext/ant/sdks/jc305u3_kit -classpath /Users/satya/UsimToolkitTraining.old/ext/ant/sdks/jc305u3_kit/lib/tools.jar com.sun.javacard.converter.Main -d /var/folders/9d/4c_v35vn69x8vhxw9dszglzr0000gn/T/jccpro23480202826772631 -classdir build -exportpath ext/ant/sdks/jc305u3_kit/api_export_files -verbose -nobanner -useproxyclass -out CAP EXP JCA -applet 0xF2:0x76:0xA2:0x88:0xBC:0xFB:0xA6:0x9D:0x34:0xF3:0x10:0x01 com.skyhook.training.ToolkitTraining com.skyhook.training 0xF2:0x76:0xA2:0x88:0xBC:0xFB:0xA6:0x9D:0x34:0xF3:0x10 1.0
  [convert] Executing '/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/bin/java' with arguments:
  [convert] '-Djc.home=ext/ant/sdks/jc305u3_kit'
  [convert] '-classpath'
  [convert] '/Users/satya/UsimToolkitTraining.old/ext/ant/sdks/jc305u3_kit/lib/tools.jar'
  [convert] 'com.sun.javacard.converter.Main'
  [convert] '-d'
  [convert] '/var/folders/9d/4c_v35vn69x8vhxw9dszglzr0000gn/T/jccpro23480202826772631'
  [convert] '-classdir'
  [convert] 'build'
  [convert] '-exportpath'
  [convert] 'ext/ant/sdks/jc305u3_kit/api_export_files'
  [convert] '-verbose'
  [convert] '-nobanner'
  [convert] '-useproxyclass'
  [convert] '-out'
  [convert] 'CAP'
  [convert] 'EXP'
  [convert] 'JCA'
  [convert] '-applet'
  [convert] '0xF2:0x76:0xA2:0x88:0xBC:0xFB:0xA6:0x9D:0x34:0xF3:0x10:0x01'
  [convert] 'com.skyhook.training.ToolkitTraining'
  [convert] 'com.skyhook.training'
  [convert] '0xF2:0x76:0xA2:0x88:0xBC:0xFB:0xA6:0x9D:0x34:0xF3:0x10'
  [convert] '1.0'
  [convert] 
  [convert] The ' characters around the executable and arguments are
  [convert] not part of the command.
  [convert] [ INFO: ] Converter [v3.0.5]
  [convert] [ INFO: ]     Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
  [convert]     
  [convert]     
  [convert] error: export file toolkit.exp of package uicc.toolkit not found. 
  [convert] [ INFO: ] conversion completed with 1 errors and 0 warnings.

converter is happy if I extract jars into exps dir.

build.xml

<?xml version="1.0" encoding="UTF-8"?>
<project name="JavaCard and USIM ToolkitApplet" default="dist" basedir=".">
  <description>Builds the project. </description>
  <target name="dist" description="generate the distribution" >
    <tstamp/>
    <ant dir="ext/ant"/>
    <!-- Create the distribution directory -->
    <taskdef name="javacard" classname="pro.javacard.ant.JavaCard" classpath="ext/ant/ant-javacard.jar"/>
    <javacard>
      <cap jckit="ext/ant/sdks/jc305u3_kit"
           aid="f2:76:a2:88:bc:fb:a6:9d:34:f3:10"
           output="build/ToolkitTraining.cap"
           sources="src"
           classes="build"
           export="build"
           jar="lib/ToolkitTraining.jar"
           jca="build/ToolkitTraining.jca"
           version="1.0">
        <applet class="com.skyhook.training.ToolkitTraining" aid="f2:76:a2:88:bc:fb:a6:9d:34:f3:10:01"/>
        <import exps="exps" jar="usimtoolkit/uicc-api-for-java-card-REL-8.jar"/>
        <import jar="usimtoolkit/usim-api-for-java-card-REL-8.jar"/>
      </cap>
    </javacard>
  </target>
  <target name="clean" description="clean up">
    <!-- Delete the built applet -->
    <delete dir="build"/>
    <delete dir="lib"/>
  </target>
</project>
  [convert] command: /Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre/bin/java -Djc.home=ext/ant/sdks/jc305u3_kit -classpath /Users/satya/UsimToolkitTraining.old/ext/ant/sdks/jc305u3_kit/lib/tools.jar com.sun.javacard.converter.Main -d /var/folders/9d/4c_v35vn69x8vhxw9dszglzr0000gn/T/jccpro1256689804679404676 -classdir build -exportpath ext/ant/sdks/jc305u3_kit/api_export_files:/Users/satya/UsimToolkitTraining.old/exps -verbose -nobanner -useproxyclass -out CAP EXP JCA -applet 0xF2:0x76:0xA2:0x88:0xBC:0xFB:0xA6:0x9D:0x34:0xF3:0x10:0x01 com.skyhook.training.ToolkitTraining com.skyhook.training 0xF2:0x76:0xA2:0x88:0xBC:0xFB:0xA6:0x9D:0x34:0xF3:0x10 1.0

Check now. exportpath is appended (-exportpath ext/ant/sdks/jc305u3_kit/api_export_files:/Users/satya/UsimToolkitTraining.old/exps)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants