28 Haziran 2018 Perşembe

jar komutu

Giriş
Seçenek açıklamaları şöyle
jar Options:
    -c  create new archive
    -t  list table of contents for archive
    -x  extract named (or all) files from archive
    -u  update existing archive
    -v  generate verbose output on standard output
    -f  specify archive file name
    -m  include manifest information from specified manifest file
    -e  specify application entry point for stand-alone application
        bundled into an executable jar file
    -0  store only; use no ZIP compression
    -M  do not create a manifest file for the entries
    -i  generate index information for the specified jar files
    -C  change to the specified directory and include the following file
-c seçeneği - Create
Yeni bir jar dosyası oluşturmamızı sağlar. Açıklaması şöyle
c - Creates a new archive file named jarfile (if f is specified) or to standard output (if f and jarfile are omitted.
Örnek
Yeni bir jar dosyası yaratmak için şöyle yaparız.
jar -cfv samples.jar . *.class
-C seçeneği - Change Directory
Belirtilen dizine gider. 
Örnek
Şöyle yaparız.
jar -cvf sample3.jar -C bin/ .
Örnek
Şöyle yaparız
jar -c -e myprogram.Main -f project.jar -C bin/ myprogram/Main.class
-C bin/ myprogram/utils/Util.class
--describe-module seçeneği
İmzası şöyle
jar --file=<jar-file-path> --describe-module 
--describe-module yerine daha kısa olan -d seçeneği de kullanılabilir.

Şöyle yaparız
$ / jar --file=commons-lang3-3.6.jar --describe-module
No module descriptor found. Derived automatic module.

org.apache.commons.lang3@3.6 automatic

requires java.base mandated
contains org.apache.commons.lang3
contains org.apache.commons.lang3.arch
contains org.apache.commons.lang3.builder
contains org.apache.commons.lang3.concurrent
contains org.apache.commons.lang3.event
contains org.apache.commons.lang3.exception
contains org.apache.commons.lang3.math
contains org.apache.commons.lang3.mutable
contains org.apache.commons.lang3.reflect
contains org.apache.commons.lang3.text
contains org.apache.commons.lang3.text.translate
contains org.apache.commons.lang3.time
contains org.apache.commons.lang3.tuple
-e seçeneği
Manifest dosyası olmadan entry point sınıfı belirtmek için şöyle yaparız.
jar cvfe Craps.jar Craps *.class
-f seçeneği - File
Dosya ismini belirtmemiz sağlar. Açıklaması şöyle.
f - Specifies the file jarfile to be created (c), updated (u), extracted (x), indexed (i), or viewed (t). The -f option and filename jarfile are a pair -- if present, they must both appear.
Örnek
Üzerinde çalışılacak dosyayı belirtmek için şöyle yaparız.
jar -tvf file_name.jar | grep class_name_to_search                    
-m seçeneği - manifest file
Jar isminden sonra manifest dosyası geldiğini belirtir. Yani manifest dosyasını belirtmemizi sağlar. 
Örnek
Executable jar oluşturmak için şöyle yaparız.
jar cvfm Craps.jar manifest.txt *.class
Örnek
Şöyle yaparız
jar cfm simpleApplication.jar application.mf ApplicationBeingTransformed.class
Örnek
Şöyle yaparız.
jar cfm "Project.jar" "Manifest.txt" project/*
-t seçeneği - table
jar dosyasındaki girdileri listeler. Genelde -f seçeneği ile birlikte kullanılır. jar dosyasının için şuna benzer.
META-INF/                       
META-INF/MANIFEST.MF            
com/                            
com/study/                      
com/study/test/                 
com/study/test/HelloWorld.class 
com/study/test/Test.class     
Bu seçenek ile jar dosyasındaki sınıflar listelenir
jar -tf my.jar | grep some_search_text
Sadece dizinleri listelemek istersek şöyle yaparız.
jar tf my.jar | grep ".*/$"
-u seçeneği
Update anlamına gelir
Örneğin jar dosyasına manifest dosyası vermek için şöyle yaparız
jar -u -f project.jar -m manifest.txt
Örneğin manifest dosyasını güncellemek için şöyle yaparız
jar -u -f project.jar --main-class myprogram.Main
-v seçeneği - verbose
Daha detaylı açıklama yazar.

Hiç yorum yok:

Yorum Gönder