Ali hocamın cevabına ek olarak;
Java gibi bir sanal makine üzerinde çalıştırılan executable bir dosyaya bir diğer deyişle makine koduna derlenmeyen dillerde Ali hocamın da dediği gibi o dilin yorumlayıcısını (Bu durumda Java) kullandığın dil içerisinde çağırman gerek.
Örnek vermek gerekirse oyunları c++ ile yazarken oyun içi bazı yerleri python, lua gibi scripting diller ile yazıp hız ve zamandan tasarruf yapıyorlar. Bunun içinse o dilin derleyici/yorumlayıcı ne var ise onun fonksiyonlarını çağırmak.
https://github.com/ariovistus/pyd bu projeyi incelersen D üzerinden nasıl python çağırılmış görebilirsin.
Benzer bir şekilde java yı da bu şekilde çağırmak mümkündür.
Gelelim ikinci noktaya. Eğer dilimiz c, c++ gibi makine koduna derleniyorsa. Aşağıdaki örnekte işlemin nasıl yapıldığını görebilirsin o yüzden sadece mantığını anlatacağım. Programı derlediğimizde saf bir object dosyası oluşur bu dosya linker işleminden geçtikten sonra executable dosya oluşturulmuş olur. Linker işleminden geçirirken başka bir dilde yazılıp derlenmiş object dosyasını da linker işlemine dahil edersek ve uygun bir şekilde header tanımlamalarını yaparsak 2 farklı dilde derlenmiş olan kodlar birbirine bağlanabilir ve beraber çalışabilir.
https://www.talhadurmus.com/c-dilini-d-ile-birlikte-derlemek
Birazcık araştırdığımda c üzerinden java yı nasıl çağırabileceğimize yönelik aşağıdaki linki buldum. Gerekli kütüphaneleri projeye dahil ettiğinde rahatlıkla çağırabilirsin.
http://www.rgagnon.com/javadetails/java-0354.html
Zekeriya
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]