İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır

Application Argument'ları

Komut Satırı Argument'ları

Bir Java application'unda dışarıdan argument alınması mümkündür. Bu şekilde application'un duruma göre değişik çalıştırılabilmesi, application'u değiştirmeden mümkün olur. Normal şartlar altında bir application'un çalışması için komut satırından

java ClassName 

girilmesi gerekir. Ancak argument verilmesi durumunda

java ClassName Argument0 Argument1 ...

biçiminde kullanılır. Bu argument'ler main method'una args[] array'i olarak verilir. main() methodunun

public static void main(String[] args) 

biçiminde tanımlanmasının nedeni budur. Programın içinde argument'lara

public static void main(String[] args) { 
	String arg0=args[0]; 
	String arg1=args[1];
} 

biçiminde erişilebilir.

Dışarıdan aldığı isme selam veren bir application yazalım.

Göster Gizle Kopar Satır Gizle Satır Göster
  1 public class GreeterByArguments{
  2   public static void main(String[] args){
  3     String greeted=args[0];
  4     System.out.println("Merhaba "+greeted);
  5   }
  6         
  7 }

Bu uygulamayı çalıştırırken

java GreeterByArguments Dünya

girersek ekrana "Merhaba Dünya" yazar. Aynı şekilde

java GreeterByArguments Evren

de diyebilirdik. Yani bizim application'umuzu kullanan kişi istediği değeri girebilir, istediği selamı ekrana çıkarabilir. Elbette biz bunu programın içinde de yapabilirdik. Ancak bu durumda her değişiklikte yeniden program yazmamız veya her sefer kodu değişitirip derlememiz gerekirdi. Oysa bir uygulama bir kez yazıldıktan sonra başka bir yerde hatta başka bir ülkedeki insanlar tarafından kullanılabilir olmalıdır. Her değişiklikte application'u yeniden yazmak çoğu kez mümkün olmaz.

Argument'ların Kontrolü

Yukarıdaki uygulama çalıştırılırken argument vermek unutulursa hata uyarısı alınır. Çünkü uygulama mutlaka neyi selamlayacağının girilmesini istemektedir. Bu hatadan kurtulmak için kullanıcının bir değer girip girmediği kontrol edilebilir.

Göster Gizle Kopar Satır Gizle Satır Göster
  1 public class GreeterByArgumentsChecked{
  2   public static void main(String[] args){
  3     if(args.length==1){
  4       String greeted=args[0];
  5       System.out.println("Merhaba "+greeted);
  6     }
  7   }
  8 }

Uygulamaya argument girilmemesi durumunda sadece hata vermemesi değil, kullanıcıya bir uyarı mesajı vermesi daha uygun olur.

Göster Gizle Kopar Satır Gizle Satır Göster
  1 public class GreeterByArgumentsWithWarning{
  2   public static void main(String[] args){
  3     if(args.length==1){
  4       String greeted=args[0];
  5       System.out.println("Merhaba "+greeted);
  6     }else{
  7       System.out.println("Lutfen kime selam verilecek girin");
  8     } 
  9   }
 10 }

Genellikle application'lar bu durumda girilecek argument'ler hakkında bilgi veren bir yazıyı ekrana basarlar ve programdan çıkarlar. Programdan çıkmak, yani application'un çalışmasını kesmek için System.exit() methodu kullanılır.

Göster Gizle Kopar Satır Gizle Satır Göster
  1 public class GreeterByArgumentsWithHelp{
  2   public static void main(String[] args){
  3     if(args.length==1){
  4       String greeted=args[0];
  5       System.out.println("Merhaba "+greeted);
  6     }else{
  7        System.out.println("kullanma:java GreeterByArguments  GreeterByArgumentsWithHelp greeted");
  8       System.exit(0);
  9     }
 10   }
 11         
 12 }

Exit methoduna '0' girmenin manası, programın doğal olarak, programcı tarafından durdurulduğunu göstermektir. Bir hata olduğunu belirtmek için 0 dışında bir değer, örneğin '-1' girilebilir.

Bir application'un, belli bir argument'in girilmemesi durumunda da varsayılan (default) değerle çalışması sağlanabilir.

Göster Gizle Kopar Satır Gizle Satır Göster
  1 public class GreeterByArgumentsWithDefault{
  2   public static void main(String[] args){
  3     String greeted;
  4     if(args.length==1){
  5        greeted=args[0];
  6     }else{
  7       greeted="Dunya";
  8     } 
  9     System.out.println("Merhaba "+greeted);
 10    }
 11          
 12 }

Bu application

java GreeterByArgumentsWithDefault Evren

diye de çağrılabilir,

java GreeterByArgumentsWithDefault 

şeklinde de. İkinci durumda "Merhaba Dünya" yazacak ve hata vermeyecektir.

Dosya Listesi

İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır