Java uygulamalarını yerel yürütülebilir dosyalara ( ) dönüştürdüğünü iddia eden birkaç araç ( Excelsior JET , vb.) Var *.exe
. Ancak bu benim olduğu anlayış bu araçlar gerçekten sadece çağırmak / çalıştırması yerli sarmalayıcılarını yaratmakta olduğu java
bir kabuk veya komut satırından.
Eğer bu anlayış yanlışsa, bunun nasıl olabileceğini anlamıyorum. Çalışan bir JVM ( java
işlem) aslında yüksek performanslı bir yorumlayıcıysa, Java sınıf dosyalarından bayt kodunu anında yüklüyorsa, bir Java uygulamasının (bir JVM'ye girdi görevi gören bayt kodu dosyaları koleksiyonu) hiç nasıl olabileceğini görmüyorum gerçekten çalıştırılabilir bir dosyaya dönüştürülmüş.
JVM süreci olmasıdır zaten girdi olarak baytkod dosyalarının setleri yerli bir yürütülebilir. Bu bayt kodu dosyalarını ve JVM işlemini tek bir yerel yürütülebilir dosyada birleştirmek için, JVM'yi yeniden yazmadan ve JVM belirtiminden korkuluk olmadan birleştirilmiş yerel yürütülebilir dosya mümkün görünmüyor.
Bu yüzden soruyorum: bu araçlar aslında Java sınıfı dosyalarını yerel bir yürütülebilir dosyaya nasıl "dönüştürür"?