问题
I have a JAR File,i want to know how to convert the JAR file to COD file.
<target name = "build-MyLib" depends="clean">
<rapc destdir="release\5.0" output="Lib">
<src>
<fileset dir=".">
<include name="lib/Lib.jar" />
</fileset>
</src>
</rapc>
</target>
Error i got was
[rapc] java.util.zip.ZipException: duplicate entry: Lib-1.cod
[rapc] at java.util.zip.ZipOutputStream.putNextEntry(Unknown Source)
[rapc] at java.util.jar.JarOutputStream.putNextEntry(Unknown Source)
[rapc] at sun.tools.jar.Main.addFile(Unknown Source)
[rapc] at sun.tools.jar.Main.create(Unknown Source)
[rapc] at sun.tools.jar.Main.run(Unknown Source)
[rapc] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[rapc] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
[rapc] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
[rapc] at java.lang.reflect.Method.invoke(Unknown Source)
[rapc] at net.rim.tools.compiler.c.e.if(Unknown Source)
[rapc] at net.rim.tools.compiler.c.e.a(Unknown Source)
[rapc] at net.rim.tools.compiler.Compiler.a(Unknown Source)
[rapc] at net.rim.tools.compiler.Compiler.a(Unknown Source)
[rapc] at net.rim.tools.compiler.Compiler.compile(Unknown Source)
[rapc] at net.rim.tools.compiler.Compiler.main(Unknown Source)
[rapc] I/O Error: jar command failed: jar -cfm E:\RakeshBBWorkspace\Helios3.6WorkSpace\Code\release\5.0\Lib.jar C:\DOCUME~1\rakesh\LOCALS ...
BUILD FAILED E:\RakeshBBWorkspace\Helios3.6WorkSpace\Code\build.xml:15: Java returned: -1
I tried using this,it shows I/o error.How can it be done?
Regards
Rakesh Shankar.P
回答1:
I also had this problem, and posted a question on the same topic. After some answers from here, and further research, I have figured out the answer.
Basically, you need to build the initial JAR file using normal java tools, rather than using rapc
. Only use rapc
for the final step. That way, your JAR file will not contain any intermediate COD files.
My full answer is here: BlackBerry: create COD from JAR source file in Ant script
I have also included a summary below - but there are more details in the link.
Only use rapc
for the last step - converting that JAR file into a COD.
A full ANT build framework to deal with this problem is too big to place here, but the steps needed to create it are listed below. Each of the steps can be easily researched on this site (or with some google). Each step is very simple, and can be debugged individually.
Steps:
javac
the SDK to create CLASS filespreverify
the CLASS filesjar
the SDK- Copy the SDK JAR file into the project
javac
the project - use the SDK JAR as the classpathpreverify
the project CLASS files (again, use the SDK JAR in the classpath)jar
the project - add the SDK JAR as a zipfilesetjarjar
this project JAR to refactor package names as required- Finally, run
rapc
on this JAR - it will find no duplicate COD files & should run fine.
来源:https://stackoverflow.com/questions/5241872/how-to-convert-jar-file-to-cod-file-using-ant-build