Archive for the ‘ Genel Bilgiler ’ Category

When you want to debug your java projects, if you can not see the values of variables, you can solve this problem, by below solution.

1. Got to Window -> Preferences -> Java -> Debug -> Detail Formatters

2. Go to under the “Show variable details(‘toString()’ value): ” then check “As the label for variables with detail formatters“.

3. Clik ok button, then finish operation.

Linux komut satırından java sınıfını derleyip çalıştırdım.
Compile için: java -classpath “your_jdk_url” your_java_class_url/yourTestClassName.java
jdk

root@ethem:/home/ubuntu# javac -classpath "/usr/lib/jdk1.6.0_23/bin/" /home/ubuntu/workspaceWeb/CommandLine/src/Test.java

cd /home/ubuntu/workspaceWeb/CommandLine/sr komutu Test.class derslenmiş dosyasını okuyoruz.
linux_command
java your_compiled_class_name

root@ethem:/home/ubuntu# cd /home/ubuntu/workspaceWeb/CommandLine/src
root@ethem:/home/ubuntu/workspaceWeb/CommandLine/src# java Test

Yazilan: Linux command line


public class Test {
	
	public  static void yaz(String str)
	{
		System.out.println("Yazilan: "+str);
		
	}
	public static void main(String[] args) {
		String s="Linux command line";
		yaz(s);

	}
}

WindowBuilder drag/drop(sürükle/bırak) işlemlerini gerçekleştirmek için googlenin geliştirdiği bir plugindir. Kendi sayfasında çok güzel döküman var. Javada sürükle/bırak işlemleri için pluginler vardı ama pek iyi değillerdi. Bu plugin iyi. Buttonu çift tıklayıp istediğiniz kodu yazabilirsiniz veya diğer pluginler gibi componenti sağ tıklayıp event ekleyebilirsiniz. Eclipse Helios için plugin linki: http://dl.google.com/eclipse/inst/d2wbpro/latest/3.6 Ganymede ve Galileo için burayı tıklayın. Eğer plugin kurmasını bilmiyorsanız bu linkte resimli olarak anlatılmış. Önce bir java projesini oluşturun sonra File–>New–>Other–>WindowBuilder den swing, gwt, swt den birini seçebilirsiniz. Ben swing–>JFrame seçtim. Ikinci yol ise java projesi oluşturduktan sonra resimde belirlenen yeri tıklayıp oluşturabilirisniz.
windowbuilder
Aşağıdaki resimde görüldüğü gibi sol tarafta Design seçip ve Paletteden istediğiniz componenti sürükleyip bırakabilirisniz.
drag adn drop
Aşağıda button tıklandıkça sayi1 değişkenin değerini 1 artırıp labele ve consola yazdırdım. Birinci metod 1-6 ya kadar sayi1 değişkenin değerini artırıyor ve ikinci metod ise 7-12 ye kadar. Bunları Thread ile yapmaya çalıştım.
Özellikle bu pluginin ürettiği kod çok anlaşılır geldi bana. Kod rahatlıkla değiştirilebilir durumda.

Arayuz.java

package ethemsulan;

import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.io.Serializable;

public class Arayuz extends JFrame implements Serializable{

	private JPanel contentPane;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					Arayuz frame = new Arayuz();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public Arayuz() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 450, 300);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		final JLabel label = new JLabel("");
		label.setBounds(77, 12, 70, 15);
		contentPane.add(label);
		
		final ThreadSinifi tObje=new ThreadSinifi();
		
		JButton btnBasla = new JButton("Basla");
		btnBasla.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
//Sayi 11 den kucuk oldugu surece button tiklandiginda
//ThreadSinifi.java icindeki run() thread metodunu cagiriyor
				if(ThreadSinifi.getSayi1()<=11)
				{
				tObje.run();
				label.setText(String.valueOf(ThreadSinifi.getSayi1()));
				}else{
					tObje.stop();
				}
			}
		});
		btnBasla.setBounds(73, 66, 117, 25);
		contentPane.add(btnBasla);
	}

}

ThreadSinifi.java

package ethemsulan;

public class ThreadSinifi extends Thread {
	private static int sayi1;
	
	public static int getSayi1() {
		return sayi1;
	}
	public static void setSayi1(int sayi1) {
		ThreadSinifi.sayi1 = sayi1;
	}
	static boolean kontrol=true;
	private Object kilitNesne=new Object();
	public void birinciMetod()
	{
		if(kontrol){
			System.out.println("Birinci thread "+getSayi1()+" degerinden basladi.");
			kontrol=false;
		}
		sayi1++;
		System.out.println(sayi1);
	}
	public void ikinciMetod()
	{
		if(kontrol==false){
			System.out.println("Ikinci Thread "+getSayi1()+" degerinden basladi");
			kontrol=true;
		}
		sayi1++;
		System.out.println(sayi1);
	}
//Once birinci metodu cagirip 0 dan 5 kadar sayi1 degerini artiriyor
//ondan sonra ikinci metodu cagiriyor
	public void run() {
		if(getSayi1()<=5){
			synchronized (kilitNesne) {
				birinciMetod();
			}
		}else if(getSayi1()<=11){
			synchronized (kilitNesne) {
				ikinciMetod();
			}
		}
		
	}

}

Ilk önce umlet jar dosyasını bilgisayarınızda uygun bir klasöre indirin.Uygun derken yolunu yanlışlıkla değiştirmeyeceğiniz bir klasör olsun.Link: UMLet JAR dosyasını indir
1
Resimde görüldüğü gibi JRE system–>Build path–>Configure Build Path seçip
2
Add external jar dan .jar dosyasını indirdiğiniz kalsörün yolunu gösterin ve klasörü seçip oki tıklayın.Daha önce jar dosyası nasıl eklendiğini sadece projeye veya tüm projelere eklemeyi anlatmıştım.Ama önceki kayıtlara bakmayan veya bilmeyen olur diye tekrar resimli gösterdim.
3
Resimde görüldüğü gibi paketlerinizi(hepsini birden seçebilirsiniz) seçip sağ tıklayıp Green UML’den Add New Class’ı seçtim. Isteğe göre diğer seçenekleri seçebilirsiniz.
4
Paketler içindeki classlar, değişken ve metodlar resimdeki gibidir. Eğer bu sınıflar birbiriyle bağlantılı olsaydı bağlantılerı gösteriridi(extends, dependency, implements…).
Son oplarak sağda görülen palette ile yeni class oluşturabilir veya düzenlemeler yapılabilir.

Internette bulduğum java web frameworklerini listelemeye çalıştım. Bulduklarım bunlar. Eksik ya da yanlış yazdıklarım olabilir.

Vaadin
Wicket
Spring
Struts
Google Web Toolkit
SwingWeb
Induction
Echo
Play
JApple
Click
Hamlets
Trimpath
MyFaces
Turbine
WebWork
WingS
JPublish
Cocoon
Rife
Macaw
Jaffa
Stripes
WebOnSwing
Jucas
Sofia
Maverick
Tapestry
Baritus
Dinamica
Xoplon
OXF
Bishop
Shocks
Expresso
Bento
jZonic
Scope
Warfare
JWAA
Chiba
JBanana
Jeenius
JWarp
Genie
Melati
Dovetail
Chameleon
JFormular
Niggle
JATO
Seam
OpenXJava
Mapper
OpenSymphony
Shale
JBoss
uPortal

package ethemsulan.com;
import java.util.Arrays;
public class Array {
  public static void main(String[] args) {
	// ilk önce içinde isimlerin olduğu bir array tanımlayalım	
	String [] isimler1={"Murat", "Nazlı", "Mehmet", "Ayşe"};
	// ikinci bir array tanımlayalım boş ve birinci arrayın genişliğinde olsun
	String [] isimler2=new String [isimler1.length ];
	
	//birinci arrayi ikinci array e kopyalayalım
	System.arraycopy(isimler1, 0, isimler2, 0, isimler1.length);
	//  birinci ve ikinci array birbirne  eşitmi diye kontrol edelim
   if(Arrays.equals(isimler1, isimler2)==true){
   	System.out.println("iki array birbirine eşittir");
   }
   else{
   	System.out.println("iki array birbirine eşit değil");
   	}
   // ilk array i ekrana sırasıyla bastıralım
  for(int i=0;i<isimler1.length;i++){
   	System.out.println(isimler1[i]);
   	}	
  }
}

Debug bir programın nasıl çalıştığının kod üzerindeki gösterimidir.Hata tespitinde çok kullanılır.Yani kodunuzda bir yerlerde yanlış işlem yapıyorsanız ve bulamıyorsanız bunu debug ile bulabilirisniz.
1
2
Debug işleminde en önemli ve ilk nokta break point lerin konulmasıdır
Ben break pointlerin classtan sonraki değişken haricindeki ilk satırın başına konulmasını öneriyorum bu şekilde programın tamamının nasıl çalıstıgını kod üzerinde imlec gölgesi yadımıyla görebilirsiniz. Bunun i.in en soldaki mavi şeritin olduğu bölgeye Mouse ile sağ tıklıyıp çıkan pencerede bereak point seçenegini seçiyoruz.
3
4
Minik bir nokta halinde sol şerit üzerinde break pointe görebilirsiniz
1
İsterseniz programın tamamın nasıl çalıştığı değilde kodun sadece bir parçasının nasıl çalıştığını da görebilirsiniz .Ben bunun için for loop u seçtim. Aynı şekilde sadece for loopun başladığı satırın başına break pointe koydum.
2
5
Daha sonra kod üzerinde mousu sağ tıklayıp DebugAs Java Application seçiyoruz
6
Bu pencereye Ok
7
Bir uyarı çıkabilir bunada Yes
8
Artık debug işlemi başladı.
9
Sürekli F6 ya basarak, imlecin sırasıyla gölgelediği satırları takip ederek kodun nasıl çalıştığını görebilirsiniz.
10
Bu ekran çıktığında artık işlemin sonuna geldiniz demektir.
11
Önce sağ en üstten java seçeneğini
12
Sonrada çıkan sayfada kırmızı ile işaretlenmiş thread düymesine basarak işlemi sonlandırıp ilk sayfanıza dönebilirsiniz.
13
Bu işlemlerin kısa yolları da fare ile tıklandığında görünür(mesela sağ tıklayıp debug as üzerine gelince java applicationun sağında Alt+Shift+ D,J )

An error has occurred.See the log file
…\workspace\.metadata\.log.
1
Yukardaki gibi bir hata alırsanız.
2
Start–>MyEclipse–>Run as administrator tıklayıp
3
Default olarak oluşturulan workbeanch urlsini(örneğin: C:\workspaceMyEclipse) değiştirin düzelir.
4

Iilk önce python 2.6 indirin http://www.python.org/download/  indirip kurun.Sonra eclipseyi açıp http://www.fabioz.com/pydev/updates/ yazın eğer plugin kurmasını bilmiyorsanız http://www.ethemsulan.com/2009/12/eclipse-eklenti-eklemekinstall-eclipse.html bakabilirisniz.Öenmli yerlerin resmini gene çektim.

dj2

Plugini yazıp next seçiyoruz.

dj1

Kurulum bititkten sonra eclipsede resimlerle belirtilen Prereferances i tıklayın.

dj2

New ile browserdan python.exe yi seçin.

dj3

dj5

dj6

Dikkat djangoyu yanı modulu eklenince burayı aç ve applyı tıkla ki update etsin.

dj7

Bu resme dikkat plugin kurulduktan sonra Pytdev yanı pythona ait bir klasor eclipsede oluşur.

Python setup kurulumuda aşağıda iki resim var.Yanı hangi dizine oluşturduklarını görmek için.Default olarak c ninn altına kuruyor.

ay3

ay4

Kurulumunda bir şey yok.sadece nereye kurulduğuna dikkat edin.çünkü eclipseye yolunu belirtiyoruz yukardaki resimlerde gösterildiği gibi.

Django projemizi http://media.djangoproject.com/releases/1.1.1/Django-1.1.1.tar.gz adresinden indirdikten sonra kurulum işlemleri için  adımlarimizi gerçekleştiriyoruz.

djangoproject.com sitesinden tar.gz uzantili django klasorumuzu rarli sekilde indiriiyoruz…
daha sonra indirdiğimiz rarli dosyayi dizine çıkartiyorz.
3..adimda konsole ekranından indirdiğimiz django dizinine geliyoruz
bunu şu şekilde yapiyoruz … C:\Users\Mitnick\Desktop\Django 1.1.1 bu klasorunu
daha sonra
C:\Python26\python.exe setup.py install ile djangomuzu kuruyoruz..

djangomuzu serverda calistiralim
kurdugumuz django klasorunu python site packages  kalsorunun altında gorebilirsiniz…
daha sonra bin klasorunun altinda django-admin.py olan binary dosyaminizi calistirmaliyiz.
django-admin.py startproject ethem
cd ethem
olarak proje aciyoruz..
daha sonra ise 
manage.py runserver 8080 olarak da test servermizda djangomuzu 8080 portu üzerinden
calistirabiliriz…

Browserimizi açıp  http://localhost:8000/ de çalıştırabilirisniz.

Ilk çalışan sayfada default olarak http://prntscr.com/58p2 yazılanalrı görebilirsiniz.Bu sayfayı görürüseniz django başarıyla çalıştırdınız demekttir.

djangoeclipse

Eclipsenin içinde ctrl + space basın kodlar çıkıyor.Yanı kod tamamlamayı destekliyor.

linkyazprojesi

Şu sitede çok yakında hizmete açılacak.Bu bir java blogu olduğundan pek djangoya girmiyecem.Bunun yazmamın amacı eclipsenin farklı dillere de destek verdiğini göstermektir.

http://www.tayfuryilmaz.com/ bu sitede çok iyi django yazıları olacak.Eğer kodları tamamlayan bir python idesi lazımsa http://www.wingware.com/downloads fena değil.Ama ücretlidir.

Bunu ayrı olarak açıklamak istedim.Şimdi consoşleden django projesini oluşturup eclipse keliyoruz ve kodlarımızı yazıyoruz yukarda managae.py runserver 8000 yazıldığı gibi tekrar consoleden projemizi çalıştırıyoruz.Bundan sonra kodlarımızı yazıp sadece browsera localhost:800 yazıyoruz ve her değişiklikte yeniliyoruz sayfayı.

cd.. Bu cd.. larla c nin içine iniliyor.ilk cmd yi açınca bu şekilde c nin altına gidiyoruz.
cd..
C:\>C:\python26\Scripts\django-admin.py startproject projeIsmiYazin
entere basınca C:\ yanı cenin altına verilen isimde bir proje oluşturur.Bu projeyi
eclipse eklemek için de

ekle

newden python project resimlerde görünüyor yukarda nexti tıklayın
project name yazılan yerde resimde görüldüğü gibi
use defaultı tıklayarak Browse den c nin altında oluşturduğunuz proje
yolunu belirtin ve namede bir isim girin

ekle2

ekle3

Her django projesinde init,manage,settings,url gibi .py uzantılı dosyalar oluşur.

ekle4

Eclipsede settings.py içine bakacak olursak resimde görüldüğü gibidir.

Özetleyecek olursam.1.adımda python setupunu indirip kurup ve eclipseye plugini ekliyoruz.2.adımda django modulunu verilen adresten indirip consolda verilen komutlar girilip bunu pythona ekliyoruz ve “Dikkat djangoyu yanı modulu eklenince burayı aç ve applyı tıkla ki update etsin.” yazılan yerde belirtileni yapıyoruz.Yanı eclipseye yolunu belirtiyoruz.Bu şekilde djangoyu(aslında pythonu ekledik djangoda python içindeki bir frameworktur) eclipseye kurmuş olduk.3.adımda console girip yukrda belirtildiği gibi komutlar ile proje oluşturuyoruz ve eclipsede new ile workspace nin altında değilde belirtilen yerdeki projeyi mesela c:\ethemsulan ismindeki projeyi ekliyoruz ve isimlendirip finihs deyince projemiz eclipseye eklenmiş olur.Bunadan sonra kodlarımızı yazıp gene yukrdaki komutlar(manage.py runserver) ile  serveri çalıştırıp mesela operayı açıp localhost:80000 yazıp çıktımıza bakabiliriz.

ekle5

p1

Tools—>plugins i tıklıyoruz.

p2

Downloaded—>Add plugins i tıklıyoruz. Indirdiğimiz eklentiyi winrardan çıkartıp sabit bir yere koyup yolunu belirliyoruz.Bulunduğu klasöre gidip .nbm leri seçiyoruz.

p3

Netbeanse pluginleri : http://plugins.netbeans.org/PluginPortal/ ten yüklemek istediğiniz plugini bulup ay da texte serach yazıp bulun ve indirin.Eğer farklı netbenase sürümlerini kullanıyorsanız :http://www.netbeans.info/uc/show_uc_content.html kullandığınız sürümü seçip show contenti tıklayın ve indirmek istediğiniz eklentiyi indirin. Ben wicket 1.4 ü indirim. Linki : http://plugins.netbeans.org/PluginPortal/faces/PluginDetailPage.jsp?pluginid=3586 indirebilirisniz.İçinde resimde görüldüğü gibi 3 tane .nbm uzantılı dosyaları seçip openı tıklayın.

p5

Next—>acceptten kurun.

Bir web frameworku olduğu için java file—>new project—>java web—>web application—>next—>nexten aşağıdaki gibi wicket 1.4ü seçip ya da istediğiniz frameworku finishi tıklayıp kullanabilirisniz.

p6

Spring webmvc,javaserverfaces, struts ve hibernate diğer web frameworklarıdır.Struts ile yazılmış örnek uygulama linki :http://www.ethemsulan.com/search/label/Struts%20Web%20Application%20Framework 

p7

Bu resimde kullanılabilir pluginleri gösteriyor.

Hata: According to TLD or attribute directive in tag file, attribute items does not accept any expressions
Çözüm: <%@ taglib uri="http://java.sun.com/jstl/core” prefix=”c” %>
yerine
<%@taglib prefix="c" uri="http://java.sun.com/jstl/core_rt” %>
yazin.Yanı core olanin yerine core_rt yazin.Yukardaki value=”${degisken}” şeklindeki expression language ile erişime izin vermiyor.