2009-02-19 18 views
5

V5'te Java kodunun anında uyumlu olması ve çalıştırılması için Janino'dan başka seçenek var mı? V6'nın Compiler API'sı olduğunu biliyorum, ancak v5 VM ile çalışmam gerekiyor.Java'da dinamik derleme seçenekleri 5

Tam bir Java sınıfı içeren bir dizeyi almam, derlemem ve belleğe yüklemem gerekiyor.

+0

Janino ile ilgilenmediğiniz için bir neden var mı? Sadece diğer seçenekleri mi arıyorsunuz yoksa soruna neden olan belirli bir sorun var mı? – MBCook

+0

Janino harika, ama Janino tarafından desteklenmeyen daha gelişmiş dil özellikleri arıyorum. Aslında Janino şu an kullandığımız şey. –

cevap

6

Ne istiyorsun Janino gibi bir şeydir. Bunu yıllardır kullandık. Bunu (standart) kod verirsiniz ve bunları kullanabilmeniz için size sınıfları verir. Aslında oldukça farklı birkaç modu var ve 1.5 sözdizimsel şeker ve otomatik kutu ve benzeri destekler.

Eğer javac'ı çağırırsanız, sadece yaptığı her şey için hazır olmanız gerekmeyecek, aynı zamanda dersi doğru yere koymaya veya ek bir yükleyici yapmaya çalışacaksınız.

Janino çok kolaydır. Tam olarak aradığın şey olmalı.

+0

Biri sorunun ilk cümlesini okumadı ... –

+0

Vay, haklısın. Bunu nasıl özledim? – MBCook

+0

+1 sadece ilk cümleyi kaçırdığın çözüm hakkında çok tutkulu olduğun için. –

2

Tüm uygulama sunucuları bunu JSP için sonsuza kadar yapar, bu yüzden açıkça mümkündür. Ödeme tomcat kaynak kodu belki? programlama yoluyla

5

çağırma javac:

http://www.juixe.com/techknow/index.php/2006/12/12/invoke-javac-at-runtime/

 
    com.sun.tools.javac.Main javac = new com.sun.tools.javac.Main(); 

    String[] options = new String[] 
    { 
     "-classpath", classpath, "-d", outputDir, filename 
    }; 

    javac.compile(options); 
+0

Bu, bir dosyaya yazılmasını gerektirir. Ne yazık ki, dağıtım ortamlarının çeşitliliği bu engelleyicidir. +1 Yine de iyi bir kurşun için. –

+0

Son sonuca sahip olmak için neye ihtiyacınız var? – TofuBeer

İlgili konular