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を押して、ステップバイステップを続けます。残念ながら、ランタイムは更新されず、古い文字列が出力されます。完全停止-コンパイル-実行は新しい文字列を出力します。したがって、私の結論はホットスワップが機能しないことです。
ホットコードスワップを有効にするために設定する必要がある設定はありますか?
ブレークポイントで待機しながらクラスを保存したら、Build -> Compile 'MainTest.Java'
を使用してクラスを再コンパイルするか、標準のキー割り当てでCtrl+Shift+F9
を押します。
IntelliJ IDEAは、そのクラスをリロードするかどうかを尋ねる小さなダイアログを表示します。
以下の変更とホットスワップを有効にした後、Javaファイルの変更には再起動時間が1〜2秒かかりました。最初の開始時間は約7秒です)。
以下の方法が役立つことを願っています...
まず、設定メニューで「プロジェクトを自動的に作成する」をチェックする必要があります。
設定メニューを開くには;
トップメニューに移動してクリックできます。
IntelliJ IDEA->設定
または、キーボードから次のショートカットを入力できます。
cmd + option + s
次に、次の図のようにMake project automatically
を確認できます。
次に、compiler.automake.allow.when.app.running
レジストリ設定をtrueに変更する必要があります。
レジストリを開くには、キーボードショートカットの下をクリックする必要があります。
cmd + shift + a
次の図のようにregistry
と入力し、Registry
を選択して、キーボードのEnterボタンを押します。
Registry
ウィンドウが開いたら、compiler.automake
と入力してcompiler.automake.allow.when.app.running
オプションを表示し、下の図のようにチェックします。
それよりも、レジストリの変更を有効にするには、IntelliJを再起動する必要があります。
Intellij 11にはDebugger > HotSwap
オプションがあります。
Javaファイルを保存するたびにhotswapが自動的に実行されるようにしたかった。
Action: Hotswap
を追加しました(Run -> Reload Changed Classes
)Ubuntuでこの問題が発生しました。また、IntelliJがファイル監視制限に関するエラーを示したという、明らかに無関係な問題がありました(正確なエラーメッセージが表示されなくなったことをおologiesびします)。この後の問題を解決するために、次の手順を実行しました。
/etc/sysctl.conf
ファイルまたはidea.conf
ディレクトリの下の新しい* .confファイル(たとえば、/etc/sysctl.d/
)に次の行を追加します。
fs.inotify.max_user_watches = 524288
次に、次のコマンドを実行して変更を適用します。
Sudo sysctl -p --system
これで、私のReactコンポーネントは再構築され、ホットスワップは問題ありません。