2011-06-19 19 views
47

Intellij, kurulumda temel hotcode takası yapmıyor gibi görünüyor. Bu kodu içinIntellij hot code swap'ı nasıl etkinleştirilir?

:

public class MainTest { 
    public void method1() { 
     System.out.println("Breakpoint here"); 
    } 

    public void method2() { 
     System.out.println("Line that will get 24 modified"); 
    } 

    public static void main(String[] args) { 
     System.out.println("First print here"); 
     MainTest mainTest = new MainTest(); 
     mainTest.method1(); 
     mainTest.method2(); 
     System.out.println("Line that I do not modify"); 
    } 
} 

Sonra Method2 dizeyi değiştirmek mainTest.method1(); bir kesme noktası koymak(), ctrl + s vurmak ve adım adım devam edin. Maalesef çalışma zamanı güncellenmiyor, eski dize yazdırılıyor. Tam durma - derleme - çalıştırma yeni dizeyi yazdırır. Sonuç olarak benim çalışmam sıcak swap çalışmıyor.

Sıcak kod takasını etkinleştirmek için ayarlamam gereken ayarlar var mı?

  • Ubuntu, JDK 1.6
  • Intellij 10.5 Ultimate (değerlendirme) sadece Build -> Compile 'MainTest.java' ile sınıfını yeniden derlemek veya standart tuş bağları ile Ctrl+Shift+F9 basın sizin kırılma noktasında beklerken sınıfınızı kaydettikten sonra
+0

Ben sadece web uygulamaları için, komut satırı uygulamaları için hot swap duymadım. – duffymo

+5

Tutulmadan geliyor, bunun için intellij'in de bunu yapmasını beklerim. Bir şey mi eksik? –

cevap

58

. Daha sonra IntelliJ IDEA, bu sınıfı yeniden yüklemek isteyip istemediğinizi soran küçük bir iletişim kutusu gösterecektir. > Select ayıklama - -

+3

Harika, teşekkürler. Intellij oto derlemesini yapabilir miyim? (çok daha iyi bir özellik şunlara izin vermek olacaktır: otomatik derleme olmadan kaydet, sonra isteğe göre varsayılan olarak açılmış olarak derlemek zorunda kaldım). –

+0

Bkz. Http://www.jetbrains.com/idea/webhelp/reloading-classes.html ve http://www.jetbrains.com/idea/webhelp/debugger-hotswap.html – joschi

+0

Çok teşekkürler, bunun için bir çok zaman! – Simcha

4

Ayar 11.

+2

Eclipse'in arka planında artan derleme gibi çalışan bir "Eclipse Mode" eklentisi var. –

+1

İyi bir yorum, ne yazık ki eklenti daha fazla http://plugins.intellij.net/plugin/?id=3822 –

+0

intellij 12 de korunacak gibi görünmüyor;) – Thermech

2

Go intellij bir Debugger > HotSwap seçeneği yoktur Aşağıdaki değişiklikler ve etkinleştirme hot swap sonra> HotSwap

enter image description here

+1

Bunu kullanırken bile hala intelliJ'i yeniden derlemeye yönlendirmem gerekiyor. Bu biraz daha kolaylaştırıyor çünkü dersleri yeniden yüklemek isteyip istemediğiniz sorusuna cevap vermek zorunda değilsiniz. –

6

, bir bir değişiklik Java dosyası, yeniden başlatma süresinin 1-2 saniyesini aldı. (İlk başlangıç ​​zamanı benim için yaklaşık 7 saniyedir). Ben yönteminin altında umut


İlk olarak, kontrol tercihler menüsünde “otomatik projeyi yap” gerekiyor ... yardımcı olur.

Tercihler menüsünü açmak için;

Üst menüye gidip tıklayın;

IntelliJ IDEA -> Tercihler

veya klavye ile kısayol altına yazabilirsiniz;

cmd, sonra

, aşağıdaki resimde olduğu gibi “otomatik projeyi yap” kontrol edebilirsiniz;

enter image description here

İkincisi, kayıt olarak gerçek ayar "compiler.automake.allow.when.app.running" değiştirmeniz gerekir.

Kayıt defterini açmak için aşağıdaki klavye kısayolunu tıklamanız gerekir;

"Registery" seçeneğini aşağıdaki resimdeki gibi bir

Tür "kayıt" shift ve klavyenin enter tuşuna basın kıl;

"Sicil" penceresi seçeneğini "compiler.automake.allow.when.app.running" görmek ve aşağıdaki resimde olduğu gibi kontrol etmek, türü "compiler.automake" açıldı

enter image description here

sonra ;

enter image description here

Daha, sen kayıt çalışması değişiklikler yapmak için intellij yeniden başlatmanız gerekiyor.

+0

HotSwap, uygulamayı ayıklarken ve sonra projeyi oluşturduğumda veya yalnızca bir dosyayı derlediğimde çalışır. Ancak, yukarıdaki kayıt ayarının yapılmasından sonra bile kayıt üzerinde çalışmaz. Çünkü ben Debug'dayım ve Run değil miyim? – DKroot

0

Ubuntu'da bu problemle karşılaştım. Ayrıca, IntelliJ'in dosya izleme sınırı ile ilgili bir hata verdiği (ki artık tam olarak hata mesajına sahip olmadığım için özür dilerim) bir alakasız sorun yaşadım. Bu daha sonra sorunu çözmek için aşağıdaki adımları yaptı:

  1. /etc/sysctl.d/ dizin altında aşağıdaki satırı için /etc/sysctl.conf dosya veya yeni * .conf dosyası (örn idea.conf) ya ekleyin: Sonra

    fs.inotify.max_user_watches = 524288 
    
  2. sudo sysctl -p --system

: değişikliği uygulamak için bu komutu çalıştırın

Şimdi React bileşenlerim yeniden oluşturuluyor ve çalışırken takas işlemi iyi.

Source

İlgili konular