Yazar girişi yapmak için tıklayın
ozgurclub banner

Java Jar Dosyalarını .Net Koduna Derlemek IKVM

İlk olarak eclipse ide mi açıyorum
Eclipse  Açık kaynak kodlu bir ide olup internetten indirebilirsiniz.

default package da Deneme isimli bir sınıf oluşturuyorum

Ekran Görüntüsü için tıklayın

public class Deneme {
public String denemeMethod(){
return "Ozgur www.sondefterim.com IKVM Denemesidir";
}
}

public class Deneme {
public String denemeMethod(){
return "Ozgur www.sondefterim.com IKVM Denemesidir";
}
}

Projenin üstüne sağ tıklayıp export dedim ve jar file olarak projemi dişarı export ettim şimdi java byte kodumuzu .net içinde kullanmaya geldi sıra IKVM Projesini 

http://www.ikvm.net/devguide/net2java.html 

Ben bu yazıyı yazarken çoktan bilgisayarıma inmiş açıkçası heyecan verici bakaılm ne olacak :))

Dizinimi açtığımda
ilk dikkatımı çeken şey 32 bit ve 64 bit uygulamalar için iki ayrı dizin oldu jar dosyamızı .net dll ine derlesek bile uygulamamızın koşacağı bilgisayara göre IKVM nin verdiği bu dll lerden birin pojemize reference etmemiz gerekmekte

Şu Linkteki ikvm ile ilgili yazılar gerçekten dikkate değer 

Java ile .NET Uygulamarı geliştirin gibi başlıklar var. Sanırım javacıların ocağına incir ağacı dikmek için hazırlanmış bir proje :)))

Visual studio 2008 ı açıp bir windows forms projesi başlatıyorum amacım java byte kodunun içindeki methodu .net uygulamam içinden çağrımak ve textbox a bunu yazdırmak...

İlk olarak yapmam gerek şey jar olarak export ettiğim java kodumu .net cil koduna derlemek cil nedir diyenler için bknz google

javatoNET.jar export edilmiş dosyamın adıdır.

ben IKVM yi masaüstüne indirdim 

C:\Documents and Settings\User\Desktop\ikvm-0.42.0.6\bin

Şekilde ikvm min binin bulunduğu dizin

şimdi Çalıştır cmd yazalım

->cd C:\Documents and Settings\User\Desktop\ikvm-0.42.0.6\bin

yazıp ikvm nin bulunduğu dizine girdim.

ikvmc javatoNET.jar dediğimde proje .net exesine derlenmişti ama bana dll lazımdı 

dll e derlemek için(

http://sourceforge.net/apps/mediawiki/ikvm/index.php?title=Ikvmc

yukarıdaki linkte console dan göndereceğiniz parametreler var)

şöyle yapmak gerekiyormuş.
->ikvmc -target:library "YOL"

C:\Documents and Settings\User\Desktop\ikvm-0.42.0.6\bin dizinimin içinde artık javanın byte kodundan .nete derlenmiş dllım durmakta

vs 2008 c# windows forms projeme bir adet textbox ve bir adet buton koydum

solution explorer penceremden gelip add refernce dedim .net olarak derlediğim java dll sini projeme ekleyeceğim.

add reference browse dedikten sonra projeme .net olarak derlediğim dll i ekledim. javatoNET.dll si ikvm nin bin dizinin altında idi.

dilerseniz object browserdan dll nın içeriğine bakabilirsiniz.

IKVM.OpenJDK.Core u da dahil etmem gerektiği konusunda b ir hata mesajı aldım onuda dahil ettim add refernce olarak

ve artık hazırız buton ve textboxum formun üstündeler butonun üstüne tıklayarak onclick event ına şu kodu yazıyoum

Bilindiği üzere java sınıfımın ismi deneme idi

 

 

        private void button1_Click(object sender, EventArgs e)

        {

            Deneme javadannesne = new Deneme();

            textBox1.Text = javadannesne.denemeMethod();

        }

ve efenim mutlu sonumuzun ekran görüntüsü :D

ekran görüntüsü

Özgür DEMİREL

Pek Kullanacağımı düşünmesemde gerçekten ilginç bir konu umarım faydalı bir iş yapmışımdır bu konuda pek türkçe kaynak bulmak mümkün değildi.Bir mum yakmış oldum en azından .......

Kategori : C#.Net
Etiketler : IKVM Nedir ,
Tarih : 16.05.2010
Ekleyen : ozgur
Tasarım ve Kodlama && SonDefterim.com Sürüm 1.1