SORU
29 Aralık 2010, ÇARŞAMBA


Değişim hızlı geçiş mekanizması ile çalışma zamanında bir yöntem

Varsayalım sadece bir sınıf oluşan önemsiz bir Java programı var:

public class HelloWorld {

   private static void replacable(int i) {
      System.out.println("Today is a nice day with a number "   i);
   }        

   public static void main(String[] args) throws Exception {
      for(int i = 0; i < 100000;   i) {
      replacable(i);
      Thread.sleep(500);
   }
}

Derlenmiş ve çalıştırın sonra çıktı bu olacak:

Bugün bir sayı 0 ile güzel bir gün

Bugün bir sayı 1 ile güzel bir gün

Bugün bir sayı 2 ile güzel bir gün

Bugün bir 3 numara ile güzel bir gün

...

Benim soru: (ya da ufukta yok) bir şekilde çalışma zamanı replacable takas yöntemi var mı? replacable, derleme ve zaten çalışan bir JVM eski sürümü sonra yeni sürümü ile HelloWorld başka bir sürümü yazmak gibi bir şey mi?

Eğer bu şekilde yeni sürümü yazarsam yani:

private static void replacable(int i) {
   System.out.println("Today is an even nicer day with a number "   i);
}  

bu yapabileceğim bir şey var Erlang's hot code swapping benzer

  1. orijinal programını çalıştırın
  2. modifiye sürümü yazmak
  3. komut satırı programı kullanarak, JVM çalışan bağlanmak ve mevcut yöntem değiştirin

böylece, çalışma zamanı sırasında, bu olacak:

Bugün bir dizi 15000 ile güzel bir gün

Bugün bir dizi 15001 ile güzel bir gün

Bugün bir dizi 15002 ile daha da güzel bir gün

Bugün bir dizi 15003 ile daha da güzel bir gün

...

Yukarıdaki programı tek başına, çalışır Java SE standart bir ortamda, sınıf, başka bir şey yok, Merhaba neredeyse dünya tarzı bir program yani varsayalım.

Not: bayt kodu manipülasyon (cglib), *9, *, JMX**10, Java EE vb. yöntemler hotswapping gibi teknolojiler biliyorum var, ama benim düşündüğüm şey değil. Ayrık düşün.

CEVAP
3 Ocak 2011, PAZARTESİ


eğer hedefe ulaşmak için de HotSwap JVM aracı veya jrebel aracı kullanabilirsiniz. HotSwap açık kaynak kodlu araç ama jrebel geliştirme amacı için sadece kullanabilirsiniz geliştirme hala bir reklam

Özellikleri

  1. Takas Yöntemi Vücut
  2. Yöntem Ekleyin
  3. Yöntem Çıkarın
  4. Alan Ekle
  5. Alanı Kaldırmak
  6. Supertype Ekleyin
  7. Supertype Çıkarın

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • jbignacio

    jbignacio

    13 Mart 2006
  • LavcoPriceTech

    LavcoPriceTe

    21 AĞUSTOS 2010
  • Stevie

    Stevie

    2 Mayıs 2010