|
|
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.
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.
|
|