Java platformu dillerinden olan BeanShell, kendi sözdiziminin yanı sıra Java programlama dili sözdiziminin büyük bir bölümünü desteklemesi nedeniyle, Java programlama dilinin komut kabuğu olarak da görülebilir. BeanShell'in bu özelliği, küçük Java kod parçalarının denenmesinde ve Java platformu için yazılmış sınıf dosyalarının yüklenip, birim sınamalarının yapılmasında, düzenle-derle-çalıştır döngüsünü kısaltması sayesinde, büyük kolaylık sağlar.
Paradigması | Nesne yönelimli, betik dili, |
---|---|
İlk çıkışı | 2000 |
Tasarımcı | |
Kararlı sürüm | 2.1.1 (2 Aralık 2022) |
Etkilendikleri | Java |
Platformu | |
İşletim sistemi | Çapraz platform |
Lisans | LGPL |
Olağan dosya uzantıları | .bsh |
Web sitesi | http://www.beanshell.org/ |
Birinci kullanım amacını anlamak için aşağıda verilen kod parçası yardımcı olacaktır. BeanShell yorumlayıcısının başlatılmasının ardından, yorumlayıcının Java programlama dili komutlarını Java derleyicisi kadar sıkı denetlemesini mümkün kılmak amacıyla, yegâne argümanında true
geçirilerek setStrictJava
komutu kullanılıyor. Takip eden satırda, tıpkı bir Java programında olduğu gibi, f1
ve f2
adlı iki değişken tanımlanıyor. Son iki satırda ise, iki farklı şekilde karşılaştırma yapmak suretiyle, matematikte ayrı addedilen değerlerin float
veri türünün kısıtlamaları nedeniyle bellekte aynı biçimde temsil edilebileceği ve bunun sonucunda da Java tarafından aynı addedilebileceği görülüyor.
$ java bsh.Interpreter BeanShell 2.0b4 - by Pat Niemeyer (pat@pat.net) bsh % strictJava(true); bsh % float f1 = 1.0000000, f2 = 0.99999999; bsh % print(f1 > f2); false bsh % print(f1 == f2); true
print
komutunun sürekli kullanılıp görüntüyü kirletmesindense, show
komutundan yararlanarak işlem sonuçlarının standart çıktıya—değiştirilmediği takdirde ekran—yansıtılması otomatiğe bağlanabilir. Ancak, şu noktaya dikkat edilmelidir: show
komutu, bir bayrak değişkenin değerini değilleyerek işini görür. Dolayısıyla, söz konusu komutun yorumlayıcıya çift sayıda verilmesi çıktının yansıtılmasını engelleyecektir.
show
komutunun kullanımını aşağıdaki örnekten görülebilir. java.util
paketindeki Arrays
sınıfını görünür hale getiren import
bildirimi ve intDz
adlı dizinin 6 elemana sahip olacak şekilde yaratılmasının ardından, dizinin istenildiği gibi oluşturulup oluşturulmadığını görmek için Arrays.toString
metodunun kullanılmasına karşın yorumlayıcı hiçbir şey basmadan geri dönüyor. Bunun sebebi, Arrays.toString
komutunun işini değerleri ekrana basmak yerine dönüş değerinde döndürerek yapmasında yatıyor. Dolayısıyla, sonucun standart çıktıya basılması isteniyorsa, örnekte olduğu gibi show
komutunun kullanılması veya döndürülen sonucun print
komutu ile yazılması gerekir.
bsh % import java.util.Arrays; // Aslında gerekli değil! bsh % int[] intDz = new int[]{1, 35, -10, 4, 22, 8}; bsh % Arrays.toString(intDz); bsh % show(); bsh % Arrays.sort(intDz); bsh % Arrays.toString(intDz); <[-10, 1, 4, 8, 22, 35]> bsh % exit(); $
Yukarıdaki örnek aynı zamanda BeanShell'in birim sınama amacıyla kullanılmasına örnek oluşturuyor. Buna göre, sınanmak istenen sınıf öncelikle görünür hale getiriliyor ve sınıf tarafından sağlanan metotlar kullanılıyor.
BeanShell'in Java programlama dilinin komut kabuğu olarak kullanılması sırasında kimi özelliklerin Java kaynak kodundaki gibi kullanılamayacağı unutulmamalıdır. Aşağıdaki kod parçasının ilk satırında geçen <
ve >
karakterlerine yapılan itiraz bu kısıtlamalardan belki de en belirginidir. Soysallık desteğinden yararlanan türleri sınamayı olanaksız hale getiren bu durumun sebebi, BeanShell yorumlayıcısının işini Java kaynak kodunu değil, derleme sırasında tür parametresi bilgisinin silinmesi 17 Mart 2011 tarihinde Wayback Machine sitesinde . nedeniyle soysallıkla ilgili hiçbir bilgi içermeyen sınıf dosyasını yükleyerek görmesinde yatar.
bsh % Vector<Integer> intVec = new Vector<Integer>(); // Error: Parser Error: Parse error at line 1, column 24. Encountered: = bsh % // Error: Parser Error: Parse error at line 1, column 11. Encountered: < bsh % // Error: Parser Error: Parse error at line 1, column 9. Encountered: ) bsh % Vector intVec = new Vector(); // Tamam. bsh %
print
, setStrictJava
ve show
dışındaki bazı BeanShell komutları aşağıda verilmiştir. Bu komutlara sağlanan dizin veya dosya adlarının göreceli olması durumunda, söz konusu komut tarafından kullanılacak mutlak konumun göreceli değerin çalışma dizinine bitiştirilmesi ile bulunduğu unutulmamalıdır.
cat
(dosya adı): Argümanda sağlanan dosyanın içeriğini ekrana basar.cd
(yeni dizinin adı): Çalışma dizinini argümanda sağlanan değer olacak şekilde değiştirir.dir
(dizin adı),dir
(): Argümansız kullanılması durumunda çalışma dizinini listeler. Aksi takdirde argümanda sağlanan dizinin içeriğini listeler.mv
(dosya adı, yeni konum): İlk argümanda sağlanan dosyayı ikinci argümanda sağlanan konuma taşır.pwd
(): O anki çalışma dizinini döndürür.rm
(dosya adı): Argümanda sağlanan addaki dosyayı siler.
Notlar
- ^ BeanShell yorumlayıcısı, kimi ortamlarda
bsh
komutunun kullanılmasıyla da başlatılabilir. - ^ Aslında
java.util
paketinin görünür hale getirilmesine gerek yok. Çünkü, BeanShell yorumlayıcısı, başlatılması sırasındajava.lang
paketine ek olarak şu paketleri de otomatikman görünür hale getirir:java.awt
,java.awt.net
,java.io
,java.net
,java.util
,javax.swing
,javax.swing.event
.
Ayrıca bakınız
- Java Programlama Dili
- JSM Dillerinin Listesi (İngilizce)
Dış bağlantılar
- Resmî site
wikipedia, wiki, viki, vikipedia, oku, kitap, kütüphane, kütübhane, ara, ara bul, bul, herşey, ne arasanız burada,hikayeler, makale, kitaplar, öğren, wiki, bilgi, tarih, yukle, izle, telefon için, turk, türk, türkçe, turkce, nasıl yapılır, ne demek, nasıl, yapmak, yapılır, indir, ücretsiz, ücretsiz indir, bedava, bedava indir, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, resim, müzik, şarkı, film, film, oyun, oyunlar, mobil, cep telefonu, telefon, android, ios, apple, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, pc, web, computer, bilgisayar
Java platformu dillerinden olan BeanShell kendi sozdiziminin yani sira Java programlama dili sozdiziminin buyuk bir bolumunu desteklemesi nedeniyle Java programlama dilinin komut kabugu olarak da gorulebilir BeanShell in bu ozelligi kucuk Java kod parcalarinin denenmesinde ve Java platformu icin yazilmis sinif dosyalarinin yuklenip birim sinamalarinin yapilmasinda duzenle derle calistir dongusunu kisaltmasi sayesinde buyuk kolaylik saglar BeanShellParadigmasiNesne yonelimli betik dili Ilk cikisi2000TasarimciKararli surum2 1 1 2 Aralik 2022 EtkilendikleriJavaPlatformuIsletim sistemiCapraz platformLisansLGPLOlagan dosya uzantilari bshWeb sitesihttp www beanshell org Birinci kullanim amacini anlamak icin asagida verilen kod parcasi yardimci olacaktir BeanShell yorumlayicisinin baslatilmasinin ardindan yorumlayicinin Java programlama dili komutlarini Java derleyicisi kadar siki denetlemesini mumkun kilmak amaciyla yegane argumaninda true gecirilerek setStrictJava komutu kullaniliyor Takip eden satirda tipki bir Java programinda oldugu gibi f1 ve f2 adli iki degisken tanimlaniyor Son iki satirda ise iki farkli sekilde karsilastirma yapmak suretiyle matematikte ayri addedilen degerlerin float veri turunun kisitlamalari nedeniyle bellekte ayni bicimde temsil edilebilecegi ve bunun sonucunda da Java tarafindan ayni addedilebilecegi goruluyor java bsh Interpreter BeanShell 2 0b4 by Pat Niemeyer pat pat net bsh strictJava true bsh float f1 1 0000000 f2 0 99999999 bsh print f1 gt f2 false bsh print f1 f2 true print komutunun surekli kullanilip goruntuyu kirletmesindense show komutundan yararlanarak islem sonuclarinin standart ciktiya degistirilmedigi takdirde ekran yansitilmasi otomatige baglanabilir Ancak su noktaya dikkat edilmelidir show komutu bir bayrak degiskenin degerini degilleyerek isini gorur Dolayisiyla soz konusu komutun yorumlayiciya cift sayida verilmesi ciktinin yansitilmasini engelleyecektir show komutunun kullanimini asagidaki ornekten gorulebilir java util paketindeki Arrays sinifini gorunur hale getiren import bildirimi ve intDz adli dizinin 6 elemana sahip olacak sekilde yaratilmasinin ardindan dizinin istenildigi gibi olusturulup olusturulmadigini gormek icin Arrays toString metodunun kullanilmasina karsin yorumlayici hicbir sey basmadan geri donuyor Bunun sebebi Arrays toString komutunun isini degerleri ekrana basmak yerine donus degerinde dondurerek yapmasinda yatiyor Dolayisiyla sonucun standart ciktiya basilmasi isteniyorsa ornekte oldugu gibi show komutunun kullanilmasi veya dondurulen sonucun print komutu ile yazilmasi gerekir bsh import java util Arrays Aslinda gerekli degil bsh int intDz new int 1 35 10 4 22 8 bsh Arrays toString intDz bsh show bsh Arrays sort intDz bsh Arrays toString intDz lt 10 1 4 8 22 35 gt bsh exit Yukaridaki ornek ayni zamanda BeanShell in birim sinama amaciyla kullanilmasina ornek olusturuyor Buna gore sinanmak istenen sinif oncelikle gorunur hale getiriliyor ve sinif tarafindan saglanan metotlar kullaniliyor BeanShell in Java programlama dilinin komut kabugu olarak kullanilmasi sirasinda kimi ozelliklerin Java kaynak kodundaki gibi kullanilamayacagi unutulmamalidir Asagidaki kod parcasinin ilk satirinda gecen lt ve gt karakterlerine yapilan itiraz bu kisitlamalardan belki de en belirginidir Soysallik desteginden yararlanan turleri sinamayi olanaksiz hale getiren bu durumun sebebi BeanShell yorumlayicisinin isini Java kaynak kodunu degil derleme sirasinda tur parametresi bilgisinin silinmesi 17 Mart 2011 tarihinde Wayback Machine sitesinde nedeniyle soysallikla ilgili hicbir bilgi icermeyen sinif dosyasini yukleyerek gormesinde yatar bsh Vector lt Integer gt intVec new Vector lt Integer gt Error Parser Error Parse error at line 1 column 24 Encountered bsh Error Parser Error Parse error at line 1 column 11 Encountered lt bsh Error Parser Error Parse error at line 1 column 9 Encountered bsh Vector intVec new Vector Tamam bsh print setStrictJava ve show disindaki bazi BeanShell komutlari asagida verilmistir Bu komutlara saglanan dizin veya dosya adlarinin goreceli olmasi durumunda soz konusu komut tarafindan kullanilacak mutlak konumun goreceli degerin calisma dizinine bitistirilmesi ile bulundugu unutulmamalidir cat dosya adi Argumanda saglanan dosyanin icerigini ekrana basar cd yeni dizinin adi Calisma dizinini argumanda saglanan deger olacak sekilde degistirir dir dizin adi dir Argumansiz kullanilmasi durumunda calisma dizinini listeler Aksi takdirde argumanda saglanan dizinin icerigini listeler mv dosya adi yeni konum Ilk argumanda saglanan dosyayi ikinci argumanda saglanan konuma tasir pwd O anki calisma dizinini dondurur rm dosya adi Argumanda saglanan addaki dosyayi siler Notlar BeanShell yorumlayicisi kimi ortamlarda bsh komutunun kullanilmasiyla da baslatilabilir Aslinda java util paketinin gorunur hale getirilmesine gerek yok Cunku BeanShell yorumlayicisi baslatilmasi sirasinda java lang paketine ek olarak su paketleri de otomatikman gorunur hale getirir java awt java awt net java io java net java util javax swing javax swing event Ayrica bakinizJava Programlama Dili JSM Dillerinin Listesi Ingilizce Dis baglantilarResmi site