Mehmet Ethem SULAN :: Java Programlama Dili :: Running and compiling a java class in the crontab Linux

Bu örnekte crontab içinden java sınıflarını nasıl çağırabileceğimizi açıklamaya çalışacam.
Crontab belli araliklarla bazi işlemlerin kendiliğinden gerçekleştirmesini sağlamak için kullanılan bir yazilimdir. Crontab içinde Test.java sinifini her akşam 21:41 de derleyip(sadece daha önce derlenmemişse derleme işlemi gerçekleşir), çalıştırıp ve çıktıyı /home/ubuntu içindeki result_output.txt(yoksa kendisi oluşturuyor dosyayı) dosyasına yazdirmasini istedim.
Note: ilk derlemede Test.class dosyası olmadığından yani daha önce derlenmediğinden result_output.txt dosyasına bir şey yazmiyor. Çünkü crontab içinde satırlar arda ardadır ve derleme uzun sürdüğünden hemen altındaki satırı çalıştırıyor ve çıktı boş oluyor. Örnek olsun diye derlemeyi de gösterdim. Zamanı 21:20 gibi bir değer veririsek o zaman sorun olmaz tabi.
Crontab’ı Linux consolundan çalıştırmayı bilmiyorsanız tıklayın(bu örnekte de nmap ile ağ taranıp veriler .xml dosyasına kaydediliyor).
Crontab içinde derlemek için aşağıdaki kodu yazıyoruz.
Note: consoldan derlemek için “/usr/lib/jdk1.6.0_23/bin” classpathi tam yazmak zorunda değiliz ama crontab içindeki bütün tanımlamalarda path tam olmalıdır. Aksi halde class not found hatası verecek. Crontab içindeki tanımlama javac komutu ile Test.java sinifini derliyor. Uyari ./CommandLine/src/Test.java tanımlamaya dikkat.
Crontab içine aşağıdaki 2 satır kod yazdım.

41 21 * * * javac -classpath "/usr/lib/jdk1.6.0_23/bin" /home/ubuntu/workspaceWeb/CommandLine/src/Test.java

Crontab’a yazılan aşağıdaki kod ise Test yani derlenmiş sinifini çağırıp main içinde ekrana yazılacak olan değeri result_output.txt dosyasına kaydediyor.Uyari ./CommandLine/src Test src boşluk Test şeklinde yazıldığında dikkat edin. Bu da Test>/home/ubuntu/result_output.txt çıktıyı txt dosyasına yazıyor.

41 21 * * * java -classpath /home/ubuntu/workspaceWeb/CommandLine/src Test>/home/ubuntu/result_output.txt

Eğer paket olsaydı onun yolunu da belirtirdik ama uygulamada paket tanımlanmamış.
Test.java

public class Test {

	public  static void writeMethod(String str)
	{
		System.out.println("Output: "+str);
		
	}
	public static void main(String[] args) {
		String s="Running a Java class in the crontab";
		writeMethod(s);

	}

}

result_output.txt içinde Running a Java class in the crontab çıktısı yazılmış olmalı.

Comments

There is one comment for this post.

  1. Mehmet Ethem SULAN :: JSP'de JavaScript Ajax jQuery CSS :: Java Crontab XML file Parser JSP Ajax Example on Ocak 22, 2011 1:02 am

    […] Mehmet Ethem SULAN :: Java Programlama Dili :: Running and compiling a java class in the crontab Lin… on Ocak 14, 2011 8:20 pm […] diye derlemeyi de gösterdim. Zamanı 21:20 gibi bir değer veririsek o zaman sorun olmaz tabi. Crontab’ı Linux consolundan çalıştırmayı bilmiyorsanız tıklayın(bu örnekte de nmap ile ağ taranıp veriler .xml dosyasına kaydediliyor). Crontab içinde […] […]

Write a Comment

Let me know what you think?