問題タブ [hotswapagent]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - リソース ファイルがリロードされない
私の目標は、Maven で構築された Tomcat プロジェクトの JRebel を DCEVM/Hotswap に置き換えることです。クラスファイルの変更を検出し、適切に処理していると思います。ただし、リソースの変更は検出されません。
私は、JVM が通常行うすべてのものをロードするという仮定から始めました。次に、hotswap-agent.properties ファイルを追加しましたが、それも機能しませんでした。
hotswap-agent.properties
watchResources= と watchResources=true も試しました
「watchResources」の形式がどうあるべきかは明確ではありません。
IP 上の理由から、公開フォーラムに完全なログ ファイルを貼り付けることはできませんが、次のように表示されました。
興味深いことに、私のファイルは C:\Software\src\main\resources ではなく、C:\Repos\myproject\src\main\java と c:\Repos\myproject\src\main\resources のような場所にあります。
重要な場合、リソースは MyBatis マッパー XML ファイルです。
リソースの変更が検出されたことを示すメッセージと適切なメッセージが必要です。
java - jar ファイルの更新で DCEVM/Hotswap Agent を使用するには?
DCEVM ホットスワップ エージェントを使用して、Java スプリング ブート アプリケーションを jar ファイルとして実行しています。jar ファイル内のいくつかのクラス ファイルを変更すると、アプリケーションはそれらの変更をリロードしません。しかし、jar ファイルを抽出し、すべての依存関係をクラスパスに追加する単純な Java クラス ファイルとしてアプリケーションを実行すると (IntelliJ Idea のように)、正常にリロードされるクラス ファイルのいずれかを置き換えます。
抽出された jar ファイルの実行:
上記のコマンドを実行した後、変更を加えて再コンパイルし、更新されたクラス ファイルを置き換えると、変更が検出され、アプリに変更が反映されます。
クラスがリロードされたことを示す上記のログが表示されます。すべて正常に動作します。
jar ファイルの実行:
実行後、次のコマンドでjarファイルを更新すると:
jar ファイルが更新されますが、変更が反映されず、ログが生成されません。
java - IDE を使用せずに変更をリロードする方法 / HotSwap リロード クラス
現在、私のセットアップは、vim と、Gradle タスクを実行する別のターミナル ウィンドウで構成されています。
DCEVMがそれらを検出してリロードできるように、Gradleデーモンのリロード/再コンパイル変更クラスアクションをトリガーできるかどうかを知りたいです。
java - HotswapAgent が機能せず、「無効です。パスを削除しています =」がスローされます
私は問題に直面しています。助けてください。私のENV:
Dcevm-11.0.9+1 (2020-11-24) Intellij 202.6397.94 Centos7 Spring-Boot 2.1.6.RELEASE
そして、私はこれらのガイドに従いました: https://github.com/HotswapProjects/HotswapAgent & https://github.com/TravaOpenJDK/trava-jdk-11-dcevm
クラスを再コンパイルした後の結果は次のようになります。
HOTSWAP エージェント: 19:49:11.740 警告 (org.hotswap.agent.watch.nio.WatcherNIO2) - <PATH_TO_MY_CHANGED_CLASS> のウォッチャーが無効です。パス = を削除します
そして、私のサービスは更新されません。また、参考になれば起動時のアプリケーションログの一部を添付します。