folder Tahribat.com Forumları
linefolder Java
linefolder Java Exe Çalıştırma



Java Exe Çalıştırma

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek

    Sunucuya java ile yazdığım Console uygulamasını çalıştırıp Belirli saat dilimlerinde iş yaptırmak istiyorum 
    1 metodumuz olsun Çay getir diye 

     

    Her Saat başı java ile yazdığım console uygulamasında çay getir metodunu çağırmak istiyorum bunun için sonsuz döngü kullanıp Thread içersiinde 1 saat uyutmayı düşünüyorum..

    Fakat Çay getir metodu bana hata dönderdiğinde bu exe dosyası kill durumuna gelecek yani gümleyecek hali ile. . 

     

    Şöyle bir iş olsa Örneğin 50 Personel var 50 personele saat başı çay verilse..

    for( ; ; )

    {

    try{CayGetir();}catch(Exception e ){}

    }

    Şöyle bir durum olsa örneğin 35. personel işten çıktı yeri boş bana personel yerinde yok hatası dönderdi . daha sonra program kapandı ben kapanmasını engellemek istiyorum. Yani Catch de yakalanan hatanın programı kapatmasını istemiyorum. Bunu nasıl yapabilirim birde bu her saat başı yapma mantığı doğru mudur? Siz ne gibi yol izliyorsunuz JavaScript/PHP/Node.js hakkında bilgim yok :( 

    Dipnot ; Sunucu Okulumun sunucusu olduğundan bana uzaktan erişim sağlanmıyor yani sunucuya müdahale edemiyorum. webservisi ve Java console uygulamasını hocama vereceğim o sunucuda çalıştıracak ve sadece URL'leri verecek bana. O yüzden hata olduğunda Java uygulamasının kapanmaması gerekiyor çünkü her seferinde hocam açar mısınız uygulamayı demek istemiyorum (SUNUCU WİNDOWS)

     

     


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    YeniHarman
    YeniHarman's avatar
    Kayıt Tarihi: 17/Haziran/2012
    Erkek
    import java.util.*;
    import java.lang.*;
    import java.io.*;
    
    class Ideone
    {
    	public static void main (String[] args) throws java.lang.Exception
    	{
    		try
    		{
    			IstisnaFirlatacakMetot();
    		}
    		catch (Exception exception) // istisnayı yutuyoruz
    		{
    			System.out.println("Istisna firlatildi: " + exception); // log'a yazabiliriz
    		}
    		// istisnayı yuttuğumuz için program kırılmayacak
    	}
    	public static void IstisnaFirlatacakMetot() throws java.lang.Exception
    	{
    		throw new java.lang.Exception("Firlatildim."); // bir istisna fırlatıyoruz
    	}
    }

    Artık istisna fırlatıldığında kapanmayacak. Kısaca sizin mantık doğru.

     


    Olaylara karışmayın!
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek
    YeniHarman bunu yazdı
    import java.util.*;
    import java.lang.*;
    import java.io.*;
    
    class Ideone
    {
    	public static void main (String[] args) throws java.lang.Exception
    	{
    		try
    		{
    			IstisnaFirlatacakMetot();
    		}
    		catch (Exception exception) // istisnayı yutuyoruz
    		{
    			System.out.println("Istisna firlatildi: " + exception); // log'a yazabiliriz
    		}
    		// istisnayı yuttuğumuz için program kırılmayacak
    	}
    	public static void IstisnaFirlatacakMetot() throws java.lang.Exception
    	{
    		throw new java.lang.Exception("Firlatildim."); // bir istisna fırlatıyoruz
    	}
    }

    Artık istisna fırlatıldığında kapanmayacak. Kısaca sizin mantık doğru.

     

    Çok teşekkür ederim hocam dersten sonra hemen deneyeceğim 


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ozgunlu
    ozgunlu's avatar
    Banlanmış Üye
    Kayıt Tarihi: 11/Kasım/2011
    Erkek

    exception' ın temel mantığı zaten programın kapanmasını engellemek değil mi


    Hello, i am nothing. I come from Neverland.
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    JPriest
    JPriest's avatar
    Kayıt Tarihi: 09/Mart/2007
    Erkek

    Exception yakaladığında programın kapanmamasını sağlayabilirsin, bunu arkadaşlar belirtmişler zaten.

    Periyodik işler yapmak istiyorsan da anahtar kelimeler: cron, crontab, cronjob, ScheduledExecutorService

    Bunlara da bakmakta fayda var:

    https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ScheduledExecutorService.html

    http://stackoverflow.com/questions/7814089/how-to-schedule-a-periodic-task-in-java

    http://www.mkyong.com/java/how-to-run-a-task-periodically-in-java/

     


    Sen hiç kaval çaldın mı?
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    NoktaliVirgul
    NoktaliVirgul's avatar
    Kayıt Tarihi: 02/Temmuz/2007
    Erkek

    özetle: on error resume next

    :)


    If my calculations are correct, when this baby hits eighty-eight miles per hour... you"re gonna see some serious shit.
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    YeniHarman
    YeniHarman's avatar
    Kayıt Tarihi: 17/Haziran/2012
    Erkek
    ozgunlu bunu yazdı

    exception' ın temel mantığı zaten programın kapanmasını engellemek değil mi

    Kesinlikle değil. Amaç programın işleyişinde sıkıntıya yol açacak kısmı bulup gerektiğinde düzgün olarak kapatmak. Hikayeyi okuyun: https://en.wikipedia.org/wiki/Therac-25#Problem_description 

    Daha açık olarak, belirsiz sonuçlara yol açmadan gerekli önlemleri almak için hata kontrolü yaparız (bir dosyaya veri eklemeden önce dosyanın varlığından haberdar olmak ya da bir işlemin sonucunun sonsuz veya tanımsız olup olmadığını test etmek -0/0, sayı/0 gibi- işlemler). İstisna işleme (exception handling) mekanizması da bu hata kontrolünü kolaylaştırır.

     


    Olaylara karışmayın!
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ozgunlu
    ozgunlu's avatar
    Banlanmış Üye
    Kayıt Tarihi: 11/Kasım/2011
    Erkek
    YeniHarman bunu yazdı
    ozgunlu bunu yazdı

    exception' ın temel mantığı zaten programın kapanmasını engellemek değil mi

    Kesinlikle değil. Amaç programın işleyişinde sıkıntıya yol açacak kısmı bulup gerektiğinde düzgün olarak kapatmak. Hikayeyi okuyun: https://en.wikipedia.org/wiki/Therac-25#Problem_description 

    Daha açık olarak, belirsiz sonuçlara yol açmadan gerekli önlemleri almak için hata kontrolü yaparız (bir dosyaya veri eklemeden önce dosyanın varlığından haberdar olmak ya da bir işlemin sonucunun sonsuz veya tanımsız olup olmadığını test etmek -0/0, sayı/0 gibi- işlemler). İstisna işleme (exception handling) mekanizması da bu hata kontrolünü kolaylaştırır.

     

    Peki ya burdaki diğer amaç da oluşabilecek hatalar sebebiyle programın aniden kapanmasını engellemek değil midir hocam ?

    Yani fırlatılan exception' a bağlı olarak programı kapatmak ya da devam ettirmek değil mi olay ?

    Ama exception konulmazsa program zaten kapanacak ve burada akışın devam edişi ya da kontrollü bir kapanış da söz konusu olmayacak.

    Yanlışsa biraz daha aydınlatabilir misiniz ? Kafamdaki örümcek ağlarından kurtulayım, uzun zamandır böyle biliyordum çünkü. Paylaştığınız yazıyı da uygun vakitte okuyacağım, teşekkürler.


    Hello, i am nothing. I come from Neverland.
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    YeniHarman
    YeniHarman's avatar
    Kayıt Tarihi: 17/Haziran/2012
    Erkek
    ozgunlu bunu yazdı
    YeniHarman bunu yazdı
    ozgunlu bunu yazdı

    exception' ın temel mantığı zaten programın kapanmasını engellemek değil mi

    Kesinlikle değil. Amaç programın işleyişinde sıkıntıya yol açacak kısmı bulup gerektiğinde düzgün olarak kapatmak. Hikayeyi okuyun: https://en.wikipedia.org/wiki/Therac-25#Problem_description 

    Daha açık olarak, belirsiz sonuçlara yol açmadan gerekli önlemleri almak için hata kontrolü yaparız (bir dosyaya veri eklemeden önce dosyanın varlığından haberdar olmak ya da bir işlemin sonucunun sonsuz veya tanımsız olup olmadığını test etmek -0/0, sayı/0 gibi- işlemler). İstisna işleme (exception handling) mekanizması da bu hata kontrolünü kolaylaştırır.

     

    Peki ya burdaki diğer amaç da oluşabilecek hatalar sebebiyle programın aniden kapanmasını engellemek değil midir hocam ?

    Yani fırlatılan exception' a bağlı olarak programı kapatmak ya da devam ettirmek değil mi olay ?

    Ama exception konulmazsa program zaten kapanacak ve burada akışın devam edişi ya da kontrollü bir kapanış da söz konusu olmayacak.

    Yanlışsa biraz daha aydınlatabilir misiniz ? Kafamdaki örümcek ağlarından kurtulayım, uzun zamandır böyle biliyordum çünkü. Paylaştığınız yazıyı da uygun vakitte okuyacağım, teşekkürler.

    Şöyle yapalım o zaman:

    Bir dosyayı (ya da akışı) yazmak için açtınız. Bu sırada program hata verdi (null pointerla işlem yapmak istediniz ya da aritmetik bir hata). Yazmak istediğiniz dosya (ya da akış) açık kalarak bütünlüğü bozuldu. Bu durumda ne yapacaksınız? Veya Android için uygulama yazıyorsunuz. Kamera kullanımı için gereken izinleri alıp kamerayı kullanmaya başladınız. Uygulama çöktü. Son olarak kamera aidiyeti sizin uygulamada olduğu için başka hiçbir uygulama bu kaynağı kullanamaz.

    Hata işlemede esas olan hata çıkarabilecek her bir parçayı kontrol altında tutmak. Örneğin her koşulda (java için ölümcül hata değilse) aldığınız kaynakları finally bloğunda geri vermeniz en doğrusu olacaktır. Belki de çok önemli olmayan hataları günlüklemek istersiniz (x adresine post işleminde bulunuldu fakat karşı taraf cevap vermedi şu tarih-zamanda gibi...). Başka bir örnek verecek olursak: Kullanıcı arayüzünde telefon numarası kısmına karakter giren kullanıcı, programı tekrar başlatmak zorunda kalmamalı. Ölümcül olmayan bir hata. Düzgün şekilde yazdığımız uygulama bu problemle karşılaşıldığında daha sonraki işlemleri yapmayacak (veritabanına kaydetme), kullanıcıyı uyaracak ve gerekirse o hatayı kaydedecektir. Önemli kısım hatalı veri girişinden sonra programın işine kaldığı yerden devam etmemesi (veritabanında telefon numarası Muhittin olan kişi gibi). 

    Hatanın durumuna göre, uygulamayı düzgün şekilde kapatmak esas olandır diyebiliriz. Hastaya verilecek ilaç miktarını hesaplayan program dozajı 1000000 ml hesaplıyorsa sıkıntı vardır.

    X, Y, Z dinamik kaynaklarını uygulama revize ettiyse, sonlanmadan önce doğru şekilde sisteme geri vermelidir. Bunu da sağlamanın kolay yolu istisna işlemeden geçiyor. Zaten ölümcül bir hataysa yapacak bir şey yok. Çökmüştür ve geri dönüşü yoktur.


    Olaylara karışmayın!
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ozgunlu
    ozgunlu's avatar
    Banlanmış Üye
    Kayıt Tarihi: 11/Kasım/2011
    Erkek
    YeniHarman bunu yazdı
    ozgunlu bunu yazdı
    YeniHarman bunu yazdı
    ozgunlu bunu yazdı

    exception' ın temel mantığı zaten programın kapanmasını engellemek değil mi

    Kesinlikle değil. Amaç programın işleyişinde sıkıntıya yol açacak kısmı bulup gerektiğinde düzgün olarak kapatmak. Hikayeyi okuyun: https://en.wikipedia.org/wiki/Therac-25#Problem_description 

    Daha açık olarak, belirsiz sonuçlara yol açmadan gerekli önlemleri almak için hata kontrolü yaparız (bir dosyaya veri eklemeden önce dosyanın varlığından haberdar olmak ya da bir işlemin sonucunun sonsuz veya tanımsız olup olmadığını test etmek -0/0, sayı/0 gibi- işlemler). İstisna işleme (exception handling) mekanizması da bu hata kontrolünü kolaylaştırır.

     

    Peki ya burdaki diğer amaç da oluşabilecek hatalar sebebiyle programın aniden kapanmasını engellemek değil midir hocam ?

    Yani fırlatılan exception' a bağlı olarak programı kapatmak ya da devam ettirmek değil mi olay ?

    Ama exception konulmazsa program zaten kapanacak ve burada akışın devam edişi ya da kontrollü bir kapanış da söz konusu olmayacak.

    Yanlışsa biraz daha aydınlatabilir misiniz ? Kafamdaki örümcek ağlarından kurtulayım, uzun zamandır böyle biliyordum çünkü. Paylaştığınız yazıyı da uygun vakitte okuyacağım, teşekkürler.

    Şöyle yapalım o zaman:

    Bir dosyayı (ya da akışı) yazmak için açtınız. Bu sırada program hata verdi (null pointerla işlem yapmak istediniz ya da aritmetik bir hata). Yazmak istediğiniz dosya (ya da akış) açık kalarak bütünlüğü bozuldu. Bu durumda ne yapacaksınız? Veya Android için uygulama yazıyorsunuz. Kamera kullanımı için gereken izinleri alıp kamerayı kullanmaya başladınız. Uygulama çöktü. Son olarak kamera aidiyeti sizin uygulamada olduğu için başka hiçbir uygulama bu kaynağı kullanamaz.

    Hata işlemede esas olan hata çıkarabilecek her bir parçayı kontrol altında tutmak. Örneğin her koşulda (java için ölümcül hata değilse) aldığınız kaynakları finally bloğunda geri vermeniz en doğrusu olacaktır. Belki de çok önemli olmayan hataları günlüklemek istersiniz (x adresine post işleminde bulunuldu fakat karşı taraf cevap vermedi şu tarih-zamanda gibi...). Başka bir örnek verecek olursak: Kullanıcı arayüzünde telefon numarası kısmına karakter giren kullanıcı, programı tekrar başlatmak zorunda kalmamalı. Ölümcül olmayan bir hata. Düzgün şekilde yazdığımız uygulama bu problemle karşılaşıldığında daha sonraki işlemleri yapmayacak (veritabanına kaydetme), kullanıcıyı uyaracak ve gerekirse o hatayı kaydedecektir. Önemli kısım hatalı veri girişinden sonra programın işine kaldığı yerden devam etmemesi (veritabanında telefon numarası Muhittin olan kişi gibi). 

    Hatanın durumuna göre, uygulamayı düzgün şekilde kapatmak esas olandır diyebiliriz. Hastaya verilecek ilaç miktarını hesaplayan program dozajı 1000000 ml hesaplıyorsa sıkıntı vardır.

    X, Y, Z dinamik kaynaklarını uygulama revize ettiyse, sonlanmadan önce doğru şekilde sisteme geri vermelidir. Bunu da sağlamanın kolay yolu istisna işlemeden geçiyor. Zaten ölümcül bir hataysa yapacak bir şey yok. Çökmüştür ve geri dönüşü yoktur.

    çok teşekkürler hocam örneğe bayıldım direk işledi beynime 

    özellikle finally çok mantıklı gelmiyordu bana, artık geliyor :))


    Hello, i am nothing. I come from Neverland.
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek

    @Jpriest hocam Cron Cronjob falan bunların ne anlama geldiğini biliyorum bunlar da Php tabanlı exeler gibi görülüyor yani işerisinde bi işlem var Web tabanlı olduğu için ( Programda hata olmadığı sürece) hep bir takım işlem yapar post get vs vs... Ben Php bilmediğim için .NET C# tabanlı birşeyler yapmam gerekiyordu . Java da bi console uygulaması ile Node.js gibi kod parçacıkları yada script yazmak yerine direk exe dosyasını çalıştırıp sunucu tarafında exe dosyasından post ettirmek istiyorum . Bi web Servisim var aslında bunun güvenliğini kontrol amaclı yapılan birşey . Atılan her postun Tokenler ile kontrolünü Exe dosyasında kontrol edip daha sonra eğer Güvenlik dışı bir işlem yapılıyor ise üyeyi banlamak hesabı öldürmek kapatmak cezalandırmak için buna ihtiyaç duydum. . Kullanıcının O an işlem yapmama olayı vardı buda bana Exception sorun olarak geri dönüyor. ve Thread kill durumuna düşüyor yani main Thread ölüyor . Haliyle benim sonsuz yaşam döngüm de ölmüş oluyor. Tekrar sunucuya girip Exe yi çalıştırmak yerine . Sorunun olduğu halde Veri tabanına Log atarak hatayı fırlatmak istedim açıkcası @YeniHarman abim de güzel bi kod yapısı attı gayet iyi denedim güzel de çalışıyor biraz da kendime göre derledim Life Cycle oldu :) 

     

    @ozgunlu hocam sizin dediğiniz şey sanırım hata olduğunda zaten hatayı kullanıcıya göstermek için Try catch bloğuna alıyoruz zaten program kapanmıyor ki diyorsunuz ama thread ölüyor. döngü dışına çıkıyor program kapanmasa bile duruyor yani o anki işlem gidiyor Objective-C olduğu için bir button yardımı ile tekrar başlatabiliriz. Ama Yapılan iş yarım kalıyor veya aksıyor bu şekilde benim amacım herhangi bi sorun halinde o işlemi es geçip bir sonraki işleme geçmek yani durmasın Devam . Go . Go . Go :D


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
Toplam Hit: 4413 Toplam Mesaj: 14
java sunucu exe sunucu