1

私たちのアプリケーションは、jar コマンドを使用してリモート システム上のファイルを抽出することに依存しています。Java 6 で、Sun が jar コマンドで抽出されたファイルのタイムスタンプのデフォルトの動作を変更したことに気付きました (なんと恐ろしい決定ですが、余談になりますが..)。jar で抽出されたファイルは、抽出時のタイムスタンプではなく、元の最終更新日を使用するようになりました。

検索すると、次の入札ビットが見つかりました。

jar は、抽出中にファイルの変更日時を保持します

jar アーカイブから抽出されたファイルとディレクトリのタイムスタンプが、jar アーカイブ内の対応するファイル/ディレクトリのタイムスタンプと一致するように設定されるようになりました。Java SE 6 より前では、jar アーカイブから抽出されたファイルとディレクトリには、抽出の日時が指定されていました。Java SE 5.0 以前の動作を取得できるように、システム プロパティ sun.tools.jar.useExtractionTime=true が提供されます。Java SE でのこのプロパティのデフォルト値は false です。

このページから: http://www.oracle.com/technetwork/java/javase/compatibility-137541.html

ただし、jar コマンドでシステム プロパティを設定する方法がわかりません。-D を使用してみましたが、役に立ちませんでした。これと同じ動作が IBM JDK に反映されているようで、それを回避する方法が必要です。

jar コマンドのシステム プロパティを設定する方法を知っている人はいますか?

4

1 に答える 1

0

ここにリンクがあります:http://download.oracle.com/javase/6/docs/technotes/tools/windows/jar.html

あなたは実際に-J-Dsun.tools.jar.useExtractionTime=trueを渡します。これが将来誰か他の人を助けることを願っています。

于 2011-10-19T21:57:09.583 に答える