我有一个JAR文件,我想知道如何将JAR文件转换为COD文件。
<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>
我得到的错误是
[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 ...
建立失败 E:\ RakeshBBWorkspace \ Helios3.6WorkSpace \ Code \ build.xml:15:Java返回:-1
我尝试使用它,它显示了I / O错误。如何完成?
此致
Rakesh Shankar.P
答案 0 :(得分:0)
我也有这个问题,并在同一主题上发布了一个问题。经过这里的一些答案和进一步的研究,我找到了答案。
基本上,您需要使用普通的java工具构建初始JAR文件,而不是使用rapc
。仅在最后一步使用rapc
。这样,您的JAR文件将不包含任何中间COD文件。
我的完整答案在这里:BlackBerry: create COD from JAR source file in Ant script
我还在下面列出了摘要 - 但链接中有更多详细信息。
仅在最后一步使用rapc
- 将该JAR文件转换为COD。
处理此问题的完整ANT构建框架太大而无法放在此处,但下面列出了创建它所需的步骤。每个步骤都可以在这个网站(或一些谷歌)轻松研究。每个步骤都非常简单,可以单独调试。
<强>步骤强>:
javac
用于创建CLASS文件的SDK preverify
CLASS文件jar
SDK javac
项目 - 使用SDK JAR作为类路径 preverify
项目CLASS文件(再次使用类路径中的SDK JAR )jar
项目 - 将SDK JAR添加为 zipfileset jarjar
此项目JAR根据需要重构包名称rapc
- 它将找不到重复的COD文件&amp;应该运行良好。