web-dev-qa-db-ja.com

Intellijホットコードスワップを有効にする方法

Intellijは、インストール時に基本的なホットコードスワップを行っていないようです。

このコードの場合:

_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");
    }
}
_

mainTest.method1();にブレークポイントを設定し、method2()で文字列を変更し、ctrl + sを押して、ステップバイステップを続けます。残念ながら、ランタイムは更新されず、古い文字列が出力されます。完全停止-コンパイル-実行は新しい文字列を出力します。したがって、私の結論はホットスワップが機能しないことです。

ホットコードスワップを有効にするために設定する必要がある設定はありますか?

  • Ubuntu、JDK 1.6
  • Intellij 10.5 Ultimate(評価)
63
Maxim Veksler

ブレークポイントで待機しながらクラスを保存したら、Build -> Compile 'MainTest.Java'を使用してクラスを再コンパイルするか、標準のキー割り当てでCtrl+Shift+F9を押します。

IntelliJ IDEAは、そのクラスをリロードするかどうかを尋ねる小さなダイアログを表示します。

78
joschi

以下の変更とホットスワップを有効にした後、Javaファイルの変更には再起動時間が1〜2秒かかりました。最初の開始時間は約7秒です)。

以下の方法が役立つことを願っています...


まず、設定メニューで「プロジェクトを自動的に作成する」をチェックする必要があります。

設定メニューを開くには;

トップメニューに移動してクリックできます。

IntelliJ IDEA->設定

または、キーボードから次のショートカットを入力できます。

cmd + option + s

次に、次の図のようにMake project automaticallyを確認できます。

enter image description here

次に、compiler.automake.allow.when.app.runningレジストリ設定をtrueに変更する必要があります。

レジストリを開くには、キーボードショートカットの下をクリックする必要があります。

cmd + shift + a

次の図のようにregistryと入力し、Registryを選択して、キーボードのEnterボタンを押します。

enter image description here

Registryウィンドウが開いたら、compiler.automakeと入力してcompiler.automake.allow.when.app.runningオプションを表示し、下の図のようにチェックします。

enter image description here

それよりも、レジストリの変更を有効にするには、IntelliJを再起動する必要があります。

13
Berk

Intellij 11にはDebugger > HotSwapオプションがあります。

5
Pratik Khadloya

設定に移動->デバッグの選択-> HotSwap

enter image description here

Javaファイルを保存するたびにhotswapが自動的に実行されるようにしたかった。

  1. 保存時に実行されるマクロを作成しました: https://stackoverflow.com/a/5581992/14731
  2. マクロの最後にAction: Hotswapを追加しました(Run -> Reload Changed Classes
1
Gili

Ubuntuでこの問題が発生しました。また、IntelliJがファイル監視制限に関するエラーを示したという、明らかに無関係な問題がありました(正確なエラーメッセージが表示されなくなったことをおologiesびします)。この後の問題を解決するために、次の手順を実行しました。

  1. /etc/sysctl.confファイルまたはidea.confディレクトリの下の新しい* .confファイル(たとえば、/etc/sysctl.d/)に次の行を追加します。

    fs.inotify.max_user_watches = 524288
    
  2. 次に、次のコマンドを実行して変更を適用します。

    Sudo sysctl -p --system

これで、私のReactコンポーネントは再構築され、ホットスワップは問題ありません。

ソース

0
Code-Apprentice