jar
コマンドラインユーティリティを使用して、指定したディレクトリにjarの1つを抽出したかった。
私がこの正しい-C
オプションを理解すれば、このトリックはうまくいくはずですが、試してみると
jar xvf myJar.jar -C ./directoryToExtractTo
Jarユーティリティから使用情報を取得しているため、何か間違ったことをしています。
jar
で実現したいものですか、手動でjarを移動してそこに呼び出す必要がありますか
jar xvf myJar.jar
これを行う方が良いです。
必要なフォルダー構造に移動します
コマンドを使用する
jar -xvf 'Path_to_ur_Jar_file'
jarはZip圧縮を使用するため、任意のunzipユーティリティを使用できます。
例:
$ unzip myJar.jar -d ./directoryToExtractTo
Jarコマンド自体には、このようなオプションはありません。 ドキュメント を調べてください:
-C dir jarコマンドの実行中に、次のinputfiles引数の処理中に一時的にディレクトリを変更します(cd dir)。その操作は、UNIX tarユーティリティの-Cオプションに似ていることを意図しています。たとえば、jar uf foo.jar -C classes bar.classをclassesディレクトリに変更し、そのディレクトリからbar.classをfoo.jarに追加します。次のコマンドjar uf foo.jar -C classes -C bin xyz.classはclassesディレクトリに変更し、classsディレクトリ内のすべてのファイルをjar.jarに追加します(jarファイルにclassesディレクトリを作成せずに)。その後、追加するbinディレクトリに変更する前に元のディレクトリに戻ります。 xyz.classからfoo.jar。クラスがファイルbar1とbar2を保持している場合、jar tf foo.jarを使用してjarファイルに含まれるものは次のとおりです。META-INF /
META-INF/MANIFEST.MF
bar1
bar2
xyz.class
現在の作業ディレクトリを変更したくない場合は、このようなサブシェルでextractコマンドを実行する方が簡単かもしれません。
mkdir -p "/path/to/target-dir"
(cd "/path/to/target-dir" && exec jar -xf "/path/to/your/war-file.war")
その後、任意の作業ディレクトリからこのスクリプトを実行できます。
[ David Schmitt に感謝します]
これは私のために働いた。
フォルダーを作成し、コマンドプロンプトからCDオプションを使用してフォルダーに変更しました。
次に、そこからjarを実行しました。
d:\LS\afterchange>jar xvf ..\mywar.war
これが、私が.batファイル内で使用することになったものです。もちろんWindowsのみ。
set CURRENT_DIR=%cd%
mkdir ./directoryToExtractTo
cd ./directoryToExtractTo
jar xvf %CURRENT_DIR%\myJar.jar
cd %CURRENT_DIR%