7

エラーが発生しています:

[signjar] jarsigner: C:\workspace\line_editor\lib\icon.jar の名前を C:\workspace\line_editor\lib\icon.jar.orig に変更しようとして失敗しました

Eclipse内でantを使用して一連のjarファイルに自己署名しようとしたとき。Ant ビルドは、このプロジェクトでは正常に機能し、他のプロジェクトでも同様のコードが機能しました。コードにいくつかの小さな変更を加え、再構築しようとしましたが、このエラーが発生し続けました。

関連する ant ターゲットは次のとおりです。

<target name="sign" depends="jar" description="Signs Jars">

        <genkey keystore="myKeystore1" alias="something" storepass="somethingpass" 
          dname="CN=Classification, OU=NAPA, O=GPC, C=US"/> 


        <signjar keystore="myKeystore1" alias="something" storepass="somethingpass">
            <fileset file="${web.dir}/${jar.name}" />
            <fileset dir="${lib.dir}">
                <include name="*.jar"/>
            </fileset>  
        </signjar>
    </target>

プロジェクトを削除し、リポジトリから再度プルしました。したがって、この部分が失敗しないように、他のプロジェクトと同じデフォルトのプロジェクト設定があります。問題の .jar を確認しましたが、読み取り専用ではありませんでした。名前を変更したところ、次のアルファベット順の .jar ファイルも失敗しました。このフォルダー内の .jars にアクセスしている実行中のプログラムはありません。

原因についての提案はありますか?

4

3 に答える 3

10

1 つの可能性は、「lib」ディレクトリにある jar が、ビルド中に使用中のクラスパス上にあることです。${lib.dir}ビルドファイルで使用されるクラスパスに含まれていますか?

署名済みの jar を格納する別のディレクトリを作成し、 destdir属性を使用して「signjar」タスクに指定することができます。

于 2011-01-17T15:58:14.990 に答える
2

私も同じ問題を抱えていました。jar ファイルの名前を自分で変更してみてください。名前を変更できない場合は、通常、どのアプリケーションがファイル ロックを持っているかを特定できます。ほとんどの場合、Java のインスタンスです。すべての Java ベースのアプリを終了して、もう一度やり直してください。(タスクマネージャを使用して、java/javaw が実行されていないことを確認してください。) その後、動作するはずです。

于 2013-11-15T05:00:28.300 に答える
1

プロジェクト用に選択されたJREjarsigner.exeのホーム ディレクトリを探します。JRE が単なる JRE (JDK ではない) の場合、このプログラムは存在しません。

プロジェクト固有の JRE を設定してみて、それが実際に JDK であることを確認してください。

于 2011-01-17T14:34:28.710 に答える