Program çalışırken Java kodunda hata ayıklama / değiştirme


15

Az önce Notch'un (Minecraft şöhretinin) nasıl hata ayıkladığını ve çalışırken Minecraft'ı nasıl değiştirdiğini gösteren bir video gördüm . Oyunu duraklatır, koddaki bir şeyi değiştirir ve daha sonra, programın yeniden başlatılmasına gerek kalmadan değişikliğin hemen yürürlüğe gireceği oyunu duraklatır.

Bu nasıl çalışıyor? Bunu başarmak için ne tür bir teknik kullanılır?


1
Ve böylece Notch'un KG sürecinin kapsamı da budur.
DeadMG

1
Stack Overflow'daki daha eski bir Soru-Cevap bölümüne göre , bu , "HotSwap" Sınıf Dosya Değişimi yapan JPDA özelliği ile yapılabilir
gnat

Lol, o videodan sonra da buraya geldi.
Ciro Santilli 事件

Yanıtlar:


4

Java, kutudan çalışırken değiştirebilir. Eclipse gibi bir IDE kullanırsanız, yöntem gövdelerini değiştirmek için çalışır. Başka kod değişiklikleri uygulamak istiyorsanız, bir araç kullanmak isteyebilirsiniz. JRebel daha fazla vakayı destekleyen bir üründür.

Bu ürün için pazarlama yapmak istemiyorum, ancak şahsen başka bir alternatif bilmiyorum. JRebel web sitesinde güzel bir özellik karşılaştırması var .

Umarım yardımcı olur.


+1 JRebel, Eclipse gibi bir IDE dışında "sıcak kodlama" için mükemmeldir.
Jalayn

4

Buna sıcak kod değiştirme denir ve IDE'nin hata ayıklama arabirimi aracılığıyla canlı çalışan kodu değiştirmesine izin verir. Java 1.4.1'den beri Sun JVM tarafından desteklenmektedir

Ancak, (ticari) JRebel JVM uzantısını kullanmadığınız sürece, yöntem gövdelerindeki değişikliklerle sınırlıdır. Yöntem veya sınıf ekler / kaldırır veya imzaları değiştirirseniz, JVM'yi yeniden başlatmanız gerekir.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.