• Anasayfa
  • Eğitimler
    • JavaScript Eğitimi
    • Angular 2 Eğitimi
    • React.js Eğitimi
    • Java 8 Eğitimi
    • Java EE 7 Eğitimi
    • Spring Framework Eğitimi
    • Git Eğitimi
  • Online Eğitimler
    • Online React.js Eğitimi
    • Online Angular 2 Eğitimi
    • Online Spring Boot Eğitimi
  • Referanslar
  • Hakkında
  • İletişim
KodEdu
  • Anasayfa
  • Eğitimler
    • JavaScript Eğitimi
    • Angular 2 Eğitimi
    • React.js Eğitimi
    • Java 8 Eğitimi
    • Java EE 7 Eğitimi
    • Spring Framework Eğitimi
    • Git Eğitimi
  • Online Eğitimler
    • Online React.js Eğitimi
    • Online Angular 2 Eğitimi
    • Online Spring Boot Eğitimi
  • Referanslar
  • Hakkında
  • İletişim

Gereksiz JAR’ lardan Kurtulun!

  • Posted by Kodedu
  • Categories Genel, Uncategorized, Yazılar
  • Date 19 Kasım 2012

Belki ufak projelerde değil ama  gitgide çapı büyüyen projelerde, uygulamanız Jar çöplüğüne dönüşebilir. Eminim sizlerde şöyle bir uygulama olsa da, gereksiz Jar’ ları temizlesek diye zamanın birinde düşünmüşsünüzdür.

Projelerimizde bazen ihtiyaçtan, bazen de, daha kolay yazılım geliştirmek amacıyla Jar kütüphaneleri kullanmaktayız. Projelerin Jar çöplüğüne dönmesinin en büyük sebeplerinden birisi hangi kütüphanenin ne işe yaradığını bil(e)memekten kaynaklanabilir. Dolayısıyla bizlerde bağımlılıklardan ötürü, derleme veya çalışma anı istisnaları almamak adına açık tabiriyle, “ne var ne yoksa” Jar kütüphanelerini projeye dahil edebiliyoruz.

İşte bu maksatla sizlere, projelerinizde kullanılmayan Jar’ları testpit edebileceğiniz güzel bir yazılım aracını tanıtmak istiyorum.

LooseJar

LooseJar, Java Instrumentation kütüphanesi aracılığıyla hangi Jar dosyasının ne oranda kullanıldığını tespit eden bir yazılım. Instrumentation, Java kodlarının olağan işleyişine dokunmadan koda dair ölçüm işlemi sunan, çeşitli bilgileri elde etmeyi sağlayan bir standart java kütüphanesi.

Nasıl çalıştırılır

LooseJar yazılımını çalıştırmak için, uygulamanızın JVM parametre kısmında yazılımı bir Java Agent olarak tanımlanamız gerekiyor.

Örneğin;

java -javaagent:<LooseJar Path> <Your ClassName> -cp <Your Jars>

Yukarıda bulunan örnek sözdizimdeki gibi Java Agent’i kullanabilirsiniz. Eğer uygulamanız bir web uygulaması ise, kullanılan uygulama sunucusunun JVM settings kısımından Java Agent tanımlanabilir.

Burada dikkat edilecek husus; Tam olarak hangi kütüphanenin ne kadar kullanıldığının tespitini elde etmekçün, uygulama çalışmasından sonlanışına kadar tüm kütüphanelere bağımlı noktaları test edilmelidir. Bu maksatla Looser’in uygulamanın ekseriyeti ölçebilmesi için Birim testleri, BDD testleri veya kullanılan eğer bir web uygulamasıysa Selenium testleri kullanılabilir. Örneğin sizin elinizde getSQLConnection() adında bir metodu varsa ve Looser agent kullanıldığı anda bu yordama uğranmamışsa, Looser size mysql bağımlılığının hiç kullanılmadığı hakkında bilgi verebilir. Bu sebeple Looser kullanımında bu noktaya dikkat edilmelidir.

Sonuç

Peki Looser bize hangi Jar’ın ne kadar kullanıldığı bilgisini nasıl verecek? Bu bilgiyi elde etmenin iki yolu var. Birincisi, uygulama sonlandıktan hemen sonra, konsol çıktısı olarak bu bilgi veriliyor. İkinci yol ise, çalışma anında JMX bağlantısıyla erişmek ve MBean metodu olarak Looser’in summary() metoduna erişmek. JMX ile erişmek için Jconsole veya VisualVM kullanılabilir.

Örnek çıktı

  • Share:
author avatar
Kodedu

Previous post

Java Mimarisiyle Kurumsal Çözümler : Kaynak Kodlar
19 Kasım 2012

Next post

Webiner : Java 8 | Project Lambda
7 Aralık 2012

You may also like

api-logo
Swagger Nedir? Neden kullanılır?
10 Ekim, 2018
spring-cli-logo
Spring CLI ile Spring Boot Projeleri Hazırlamak
21 Ağustos, 2017
eureka_architecture
Spring Cloud Netflix ve Eureka Service Discovery
3 Temmuz, 2017

    2 Comments

Leave A Reply Cevabı iptal et

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta listesine kayıt olun!






Gözde yazılar

Java Mimarisiyle Kurumsal Çözümler : Kaynak Kodlar
09Kas2012
HTML 5 Server Sent Events on Glassfish 4
27Kas2013
Java 8 – Default Methods
06Eki2014
GittiGidiyor’da JavaScript Eğitimi Tamamlandı
09Ağu2016

Son Yazılar

  • Java’da Record’lar 27 Ocak 2020
  • Swagger Nedir? Neden kullanılır? 10 Ekim 2018
  • Spring CLI ile Spring Boot Projeleri Hazırlamak 21 Ağustos 2017
  • Spring Cloud Netflix ve Eureka Service Discovery 3 Temmuz 2017
  • Online React.js Eğitimi ardından (15-25 Mayıs 2017) 31 Mayıs 2017

Son Yorumlar

  • Naïve Bayes Sınıflandırma Algoritması için Rahman Usta
  • Naïve Bayes Sınıflandırma Algoritması için Mete
  • YAML Nedir? Neden YAML Kullanmalıyız? için kara
  • JWT (JSON Web Tokens) Nedir? Ne işe yarar? için Furkan
  • YAML Nedir? Neden YAML Kullanmalıyız? için shahriyar

Get Java Software

Arşivler

Bizi takip edin

React.js Eğitimi Başlıyor
11-22 Eylül, 2017
Eğitmen
Rahman Usta
İletişim

merhaba@kodedu.com

  • Hakkında
  • Gizlilik Politikası
  • İletişim
  • Referanslar
Kodedu Bilişim Danışmanlık
Cemil Meriç mah. Çelebi sok.
No:16/3 Ümraniye/İSTANBUL
Tel: 0850 885 38 65
Alemdağ V.D.: 8960484815

KODEDU © Tüm hakları saklıdır.