問題タブ [hotswap]
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 - 長時間実行されるループは、intellijではデバッグできなくなります
私はIntelliJを使用してアプリケーションを開発およびデバッグしています。多くの場合、デバッグの一環としてクラスをホットスワップします。時々(たまに)新しく追加されたコードにブレークポイントを設定できません。IDEは、ブレークポイントが有効であることを示していますが、そこで止まりません。
これは、何度も実行されたループで発生することを確認しました。誰かが同様の問題に直面しましたか?どうすればこれを修正できますか?
(Intellj8、JDK 1.6.x)
c - Cでホットコードスワッピングを行うことは可能ですか?
これ
en.wikipedia.org/wiki/Hot_swapping#cite_note-1
VSはデバッガーの助けを借りてそれを行うことができると言います。gdbは同様の機能を提供しますか?
これは私が見つけることができる最も近いものですが、使用する準備ができていないようです:
http://www.aitdspace.gr/xmlui/handle/123456789/219
dlopen / dlsym / dlcloseも近いですが、-lmylib参照ライブラリでは機能しません(参照カウントが0になることはありません)。
私が検討した代替案:
1)-Wl、-wrap、fooを使用し、__ wrap_foo(){func = dlopen(); func(); }
2)libfoo.soを共有ライブラリにし、ホットスワップが必要な場合は、dlopen(RTLD_GLOBAL)を使用して新しいコードをロードし、foo()の次の呼び出しに更新されたシンボルを提供します。
1)ホットスワップしたいすべての関数を列挙する必要があるため、うまく機能しません。これらはすべてです。
2)foo()が呼び出されると、新しいコードがロードされるため、うまく機能しませんが、fooはそのシンボルへの参照を永久に保持します。dlopenを複数回呼び出すと、fooが再評価されます。
java - Eclipse: コードをライブで編集および実行する
Eclipse で Java コードを編集するとき、さまざまな方法で実行中にコードを変更し、プログラムを再起動せずにそれらの変更を有効にすることができます。
この機能の基盤となるテクノロジーは何ですか? それは Eclipse の一部ですか、それともコマンド ライン ツールと JDK に付属のツールを使用して実行できるものですか?
java - Java クラスのリロード
私は jboss サーバーを使用しており、すべてのクラスを jar ファイル内に配置しています。
Java ファイルのいずれかを変更した場合は、jar 内のクラス ファイルを置き換えて、サーバーを再起動する必要があります。
サーバーを再起動せずに、新しく作成されたクラス ファイルを動的にロードする方法はありますか?
前もって感謝します。
java - ホットスワップメカニズムを介して実行時にメソッドを変更する
1つのクラスだけで構成される簡単なJavaプログラムがあると仮定します。
コンパイルして実行すると、出力は次のようになります。
今日は数字が0のいい日です
今日はナンバーワンのいい日です
今日は2番のいい日です
今日は3番のいい日です
..。
私の質問:実行時にメソッドを交換する方法はありますか(または近い将来にありますか) replacable
?HelloWorld
の新しいバージョンで別のバージョンをreplacable
作成し、それをコンパイルしてから、すでに実行中のJVMで古いバージョンをコンパイルするようなものですか?
したがって、次のように新しいバージョンを作成すると、次のようになります。
私がこれを行うことができるErlangのホットコードスワッピングに似たものはありますか?
- オリジナルプログラムを実行する
- 修正版を書く
- コマンドラインプログラムを使用して、実行中のJVMに接続し、既存のメソッドを置き換えます
そのため、実行時にこれが発生します。
今日は15000番のいい日です
今日は15001という数字のいい日です
今日は15002という数字でさらに良い日です
今日は15003という数字でさらに良い日です
..。
上記のプログラムがスタンドアロンであり、標準のJava SE環境で実行され、クラスパス上に他に何もないため、ほぼHelloワールドスタイルのプログラムであると想定します。
注:バイトコード操作(cglib)、aspectJ、jRebel、JMX、Java EEのメソッドのホットスワップなどのテクノロジーが存在することは知っていますが、それらは私が考えているものではありません。Erlangについて考えてみてください。
wcf - どの.NET4.0テクノロジーがモジュラーフィックスインフライト(ホットスワップ)RESTサービスホスティングを提供しますか?
ですから、それは今では何年もの夢ですが、希望は永遠に湧きます。進行中の要求または「兄弟」サービスへの影響を最小限に抑えてサービスを追加/更新できるフレームワーク/サービス(WCF / WAS / MVC / ETC)はありますか?
夢は次のようになります。
IIS7
プラグ可能なRESTサービスホスト
共有リソース(リポジトリ、qa)
サービスA-本番環境のフォルダーにドロップされ、新しいRESTメソッドを提供します
サービスB-バグを修正するために「飛行中」を更新し、リクエストの中断を最小限に抑えました
答えはWASまたはおそらくAppFabric(夢は慎重ではありません)に関係していると思いますが、それを機能させる簡単な方法を見つけることができなかったので、PHPの仲間と思うものを最もよく達成する方法についてのあなたの意見を歓迎しますただ「する」。
google-app-engine - intellijでGroovyホットスワップを機能させるにはどうすればよいですか?
Groovy と Google App Engine を使用しています。Intellij を試していますが、Groovy クラスの変更に対してホットスワップを機能させる方法がわかりません。Eclipseで動作します。Intellij で動作させるために何か特別なことをしなければなりませんか?
scala - jetty-restartなしでスカレートするためにインポートされた変更されたクラスをロードするにはどうすればよいですか?
ビューテンプレートとしてscalateを使用しており、sbt+jrebelを使用しています。しかし、scalateにインポートされたクラスが変更されている場合は、jettyを再起動する必要があります。そうしないと、複雑なエラーが発生する可能性があります。
コードは非常に単純です。
webapp / WEB-INF / web.xml
src / main / scala / test.scala
webapp / index.jade
桟橋の自動リロードを無効にする
次に、桟橋を開始します。
ホームページにアクセス:
正しく表示されます:
次に、次のように変更しtest.scala
ます。
もう一度ページにアクセスしてください。正解です。
次に、メソッド名を変更します。
呼び出しindex.jade
ますb()
:
もう一度アクセスして、エラーを表示します。
このサンプルから、どこが間違っているかはわかりませんが、私の別のプロジェクトでは、理由を確認できます。index.jadeのコンパイルに失敗し、値b()
が見つかりません
だから私は突堤を再起動する必要があります:
もう一度アクセスすると、すべてがうまくいきます。
この問題を修正する方法、または再起動せずにscalateを操作する他の方法はありますか?
アップデート
1週間近く試した後、私はあきらめなければなりません。見つけたすべての解決策を試しましたが、再起動しないとコンパイルできません。
今、私はjrebelなしでsbtを実行し、クラスが変更されたときにjettyにwebappをリロードさせます(スケールビューを監視しません)。今のところ、3〜5秒かかりますが、それほど長くはありません。
最後に、@Jamesの助けに感謝します
wpf - Reloadable Plugins を使用する WPF アプリケーションを作成するには?
私は興味深い問題を抱えています。
複数の UserControls をホストする WPF アプリケーションを作成する必要があります。(アプリケーションはまさにそれを行います - UserControls のドッキング機能を備えたコンテナーとして機能します)
アプリケーションは、別のホット スワップ可能なコンポーネントとして UserControls のデータ モデルもホストします。(コンポーネントを交換できるように、コンポーネントごとに内部キューを使用する予定です。)
これらのユーザー コントロールは、実行時にプラグ可能 (これは簡単です) で、再読み込み可能 (これは難しい/不可能のようです) でなければなりません。 MarshalByValue および marshalByRefObject について GUI の制限はありますか? ) アプリが起動している間に UI コンポーネントをホットスワップする場合と同様に、実行時に「リロード可能」です。
また、UserControl のコンテキスト メニューに、ホストからのいくつかの項目と、UserControl 自体からのいくつかの項目を含めたいと考えています。
また、ホストと UserControls の間でシームレスにフォーカス (フォーカス イベントの境界線の色などを変更) を制御するロジックもあります (ホストと UserControls 間のタブ移動)。
余談ですが、Excel などの ActiveX コンテナーと統合するために、UserControl を ActiveX 対応にすることも必要です。
これにより、UserControl を単独で実行する (単体テスト)、コンテナー内で実行する (シームレスなナビゲーション、コンテナーおよびその他の関連する UserControls との統合)、および ActiveX コンテナーと統合する ActiveX コントロールとして柔軟性が得られます。
それが可能かどうか、またこれをサポートするフレームワーク(MAF?)があるかどうかを知りたいです。例やドキュメントへのポインタが役立ちます。
前もって感謝します、
よろしく、ヴェン。
java - Maven を使用して jar ファイルを検索して置換する
あるアプリケーション サーバー (Tomcat としましょう。ただし、Jboss、Jetty、またはその他のものでもかまいません) で実行される大きなプロジェクトに取り組んでいるとします。プロジェクトは複数の戦争で構成されていますが、各戦争には多くの jar が含まれています。全体が Maven を使用して構築されており、すべてを構築するには多くの時間がかかります。
ここで、開発者が 1 つの小さな jar を生成する 1 つのモジュールだけに変更を加えたとします。作業を続けて変更をテストするには、開発者は関連する war でこの jar を置き換え、サーバーを再起動する必要があります (war を再デプロイするだけで十分な場合もあります)。アプリケーション全体を再構築するよりもはるかに高速です。多くの開発者 (私自身を含む) がこのタスク用のシェル スクリプトを作成しているのを見てきました。
ただし、maven を使用して自動的に実行できれば、はるかに優れたものになる可能性があります。「mvn install」を実行すると、プラグインも事前定義された場所 (例: ${tomcat}/webapps) に移動し、myjar.jar のすべての外観を検索して、それらを新しいバージョンに置き換えます (複数の jar があることを覚えていますか? )
そのようなプラグインについて知っている人はいますか?それとも、同じタスクを実行できる他のツールに関するものでしょうか? または、それを行う方法のより良いアイデアはありますか?
更新:ところで、解決策が見つからない場合は、おそらく自分で実装します。ので、興味のある方は教えてください。ベータテスターが必要です:)
更新:プラグインを自分で作成しました。http://code.google.com/p/replace-file-plugin/を参照してください。