1

Ant スクリプト (BlackBerry ビルド用) を取得してpreverify.exeコマンドを実行し、正しいパラメーターを渡すのに問題があります。


コマンド プロンプト (Windows 7) では、これは 100% 機能します。指定されたパラメーターは適切に機能します。

preverify -verbose -classpath C:\development\tools\bb-jde\jde5.0\components\lib\net_rim_api.jar -d build\classes\preverified build\classes\preverified build\classes\unverified

次のターゲットを使用して、これをAntスクリプトに入れようとしました-同じパラメーターを使用しようとしています:

<target name="preverify">
    <mkdir dir="${dest.dir}/classes/preverified" />
    <exec executable="${jde.home}/bin/preverify">
        <arg value="-verbose" />
        <arg value="-classpath C:\development\tools\bb-jde\jde5.0\components\lib\net_rim_api.jar" />
        <arg value="-d build\classes\preverified" />
        <arg value="build\classes\unverified" />
    </exec>
</target>

これは動作しません。次のエラーが表示されます。

Illegal option 
-classpath C:\development\tools\bb-jde\jde5.0\components\lib\net_rim_api.jar
  • このクラスパスは、コマンドラインから完全に受け入れられました (JAR ファイルは基本的に ZIP ファイルであるため、多くの場合、Java コマンドは JAR ファイルをディレクトリとして受け入れます)。

コマンドラインバージョンのように、このコマンドに正しいパラメーターを送信するように Ant を取得するにはどうすればよいですか? exec私が行方不明になっていることについて何かがあるに違いありませんか?


このターゲットを冗長モードで実行した場合の Ant の完全な出力を以下に示します。

Apache Ant(TM) version 1.8.2 compiled on December 20 2010
Trying the default build file: build.xml
Buildfile: C:\development\ant\test_using_javac_jar_preverify_then_rapc\Cobi\build.xml
Detected Java version: 1.6 in: C:\Java\jdk1.6.0_24\jre
Detected OS: Windows 7
parsing buildfile C:\development\ant\test_using_javac_jar_preverify_then_rapc\Cobi\build.xml with URI = file:/C:/development/ant/test_using_javac_jar_preverify_then_rapc/Cobi/build.xml
Project base dir set to: C:\development\ant\test_using_javac_jar_preverify_then_rapc\Cobi
parsing buildfile jar:file:/C:/development/tools/apache-ant/lib/ant.jar!/org/apache/tools/ant/antlib.xml with URI = jar:file:/C:/development/tools/apache-ant/lib/ant.jar!/org/apache/tools/ant/antlib.xml from a zip file
Importing file C:\development\ant\common\constants.xml from C:\development\ant\test_using_javac_jar_preverify_then_rapc\Cobi\build.xml
Overriding previous definition of reference to ant.projectHelper
parsing buildfile C:\development\ant\common\constants.xml with URI = file:/C:/development/ant/common/constants.xml
parsing buildfile jar:file:/C:/development/tools/bb-ant-tools/bb-ant-tools.jar!/bb-ant-defs.xml with URI = jar:file:/C:/development/tools/bb-ant-tools/bb-ant-tools.jar!/bb-ant-defs.xml from a zip file
Overriding previous definition of reference to ant.projectHelper
 [property] Loading C:\development\ant\test_using_javac_jar_preverify_then_rapc\Cobi\project.properties
 [property] Loading C:\development\ant\common\jde5.0.properties
 [property] Loading C:\development\ant\common\common.properties
[pathconvert] Set property net_rim_api.jar.dos = C:\development\tools\bb-jde\jde5.0\components\lib\net_rim_api.jar
Build sequence for target(s) `preverify' is [preverify]
Complete build sequence is [preverify, javac, build, sign, clean, ]

preverify:
    [mkdir] Skipping C:\development\ant\test_using_javac_jar_preverify_then_rapc\Cobi\build\classes\preverified because it already exists.
     [exec] Current OS is Windows 7
     [exec] Executing 'C:\development\tools\bb-jde\jde5.0\components\bin\preverify' with arguments:
     [exec] '-verbose'
     [exec] '-classpath C:\development\tools\bb-jde\jde5.0\components\lib\net_rim_api.jar'
     [exec] '-d build\classes\preverified'
     [exec] 'build\classes\unverified'
     [exec]
     [exec] The ' characters around the executable and arguments are
     [exec] not part of the command.
     [exec] preverify: Illegal option -classpath C:\development\tools\bb-jde\jde5.0\components\lib\net_rim_api.jar
     [exec]
     [exec] Usage: preverify [options] classnames|dirnames ...
     [exec]
     [exec] where options include:
     [exec]    -classpath     <directories separated by ';'>
     [exec]                   Directories in which to look for classes
     [exec]    -d <directory> Directory in which output is written (default is ./output/)
     [exec]    -cldc1.0       Checks for existence of language features prohibited
     [exec]                   by CLDC 1.0 (native methods, floating point and finalizers)
     [exec]    -nofinalize    No finalizers allowed
     [exec]    -nonative      No native methods allowed
     [exec]    -nofp          No floating point operations allowed
     [exec]    @<filename>    Read command line arguments from a text file
     [exec]                   Command line arguments must all be on a single line
     [exec]                   Directory names must be enclosed in double quotes (")
     [exec]
     [exec] Result: 1

BUILD SUCCESSFUL
Total time: 1 second
4

3 に答える 3

1

これは ANT の問題ではないようです。preverifyコマンドによってエラー メッセージが返され、ANT がそれを実行していることを証明しています...

このコマンドが何をしているのか理解できませんが、使用法メッセージは根本的な原因についてのヒントを提供します:

[exec] Usage: preverify [options] classnames|dirnames ...
[exec]
[exec] where options include:
[exec]    -classpath     <directories separated by ';'>
[exec]                   Directories in which to look for classes

ディレクトリのリストを「classpath」パラメーターとして指定していません....jar ファイルを指定しました。コマンドはjarファイルをサポートできますか?

于 2012-05-21T18:23:56.580 に答える
0

環境変数 PATH に jdk\bin ディレクトリ パスを含めることで、この問題を解決しました。

于 2013-09-05T05:18:36.763 に答える
0

パラメータを渡す方法が正しくありません。タグと JAR 名の間にスペースを入れることはできません-classpath

その行 (およびその-d下) を 2 行に分割する必要があります。これは機能します:

    <exec executable="${jde.home}/bin/preverify">
        <arg value="-verbose" />
        <!-- classpath to the RIM api -->
        <arg value="-classpath" />
        <arg value="C:\development\tools\bb-jde\jde5.0\components\lib\net_rim_api.jar" />
        <!-- destination folder -->
        <arg value="-d" />
        <arg value="build\classes\preverified" />
        <!-- source folder -->
        <arg value="build\classes\unverified" />
    </exec>
于 2012-05-22T08:18:59.253 に答える