如何使用Ant Build将JAR FILE转换为COD文件

时间:2011-03-09 05:47:54

标签: blackberry ant

我有一个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

1 个答案:

答案 0 :(得分:0)

我也有这个问题,并在同一主题上发布了一个问题。经过这里的一些答案和进一步的研究,我找到了答案。

基本上,您需要使用普通的java工具构建初始JAR文件,而不是使用rapc。仅在最后一步使用rapc。这样,您的JAR文件将不包含任何中间COD文件。

我的完整答案在这里:BlackBerry: create COD from JAR source file in Ant script

我还在下面列出了摘要 - 但链接中有更多详细信息。


仅在最后一步使用rapc - 将该JAR文件转换为COD。

处理此问题的完整ANT构建框架太大而无法放在此处,但下面列出了创建它所需的步骤。每个步骤都可以在这个网站(或一些谷歌)轻松研究。每个步骤都非常简单,可以单独调试。

<强>步骤

  1. javac用于创建CLASS文件的SDK
  2. preverify CLASS文件
  3. jar SDK
  4. 将SDK JAR文件复制到项目中
  5. javac项目 - 使用SDK JAR作为类路径
  6. preverify项目CLASS文件(再次使用类路径中的SDK JAR
  7. jar项目 - 将SDK JAR添加为 zipfileset
  8. jarjar此项目JAR根据需要重构包名称
  9. 最后,在此JAR上运行rapc - 它将找不到重复的COD文件&amp;应该运行良好。