問題タブ [sigar]
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 - LinuxでMavenでSIGARを使用するには?
依存関係とSpringフレームワークにmavenを使用して、LinuxプロジェクトでSIGARを実行しようとしています。公式ウェブサイトによると、Mavenpom.xml
ファイルに Maven 依存関係と Maven リポジトリを追加しました。
しかし、これではまだ十分ではありません。今、私はエラーがあります:
Maven Web サイトを検索しましたが、必要な amd64-linux jar が見つかりませんでした。Maven を使用して追加する方法もわかりません。
問題を解決するにはどうすればよいですか?
java - Ubuntu ベースの Linux に SIGAR をインストールするには?
Maven と Spring を使用した Java プロジェクトで SIGAR を使用しています。pom.xml
このリンクで説明されているように
、Maven 依存関係と Maven リポジトリがファイルに含まれています: http://mavenhub.com/mvn/thirdparty-uploads/org.hyperic/sigar/1.6.5.132
さらに、Jetty (によって作成された .war ファイルを起動するmvn install
) を使用してプログラムを起動しています。
ただし、SIGAR はまだ機能しません。明らかに、libsigar-amd64-linux-1.6.4 もインストールする必要があります。
そのファイルをダウンロードしましたが、どうしたらいいのかわかりません。これを修正するにはどうすればよいですか? そのファイルはどこに置くのですか?
java - sigar を使用して処理時間を取得できません
sigar を使用して各プロセスの処理時間を取得しようとしています。次のエラーが表示されます。
すべての権限を設定するポリシー ファイルを試しました。それでもエラーが発生します。私は netbeans 8.0 を使用しています。そして、私はすでに設定していました
-Djava.security.manager -Djava.security.policy=src/dir1/dir2/important.policy
vmware - Sigar 1.6.4 がクラッシュしています: EXCEPTION_ACCESS_VIOLATION
Java 用の Sigar ライブラリを使用していますが、次のエラーが発生します。
Java ランタイム環境によって致命的なエラーが検出されました: EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0000000010014ed4、pid=1560、tid=4812
ここで、生成されたエラー ログを確認できます。(私のマシンスペックも)
これは、プログラムが数時間実行された後にランダムに発生します。その後、クラッシュし、パラメーター (CPU、RAM、ディスクなど) を監視できなくなります。これは非常に煩わしく、 SIGARがクラッシュするかどうかを信頼できないため、SIGAR はまったく役に立たなくなります。
私はそれについてこの2つのトピックを読んできましたが、ライブラリの問題であり、適切な解決策が提案されていないようです(ライブラリはエラーを修正していないようです)
この回答で64 ビットで解決する方法について話している人がいますが、そのファイルはダウンロードすることさえできません。(java/src
フォルダはありません)。
それに対処する方法について何か考えはありますか?それは修正可能ですか?そうでない場合、Sigar のどの代替案を提案してくれますか?
これが関連する場合、これらは私がアプリケーションで使用している Sigar 関数です。
java - JVM のすべてのスレッドの CPU 使用率を取得するにはどうすればよいですか?
LinuxでCPUを(とりわけ)監視するために使用するJava監視アプリケーションがあります。
プロセスの CPU 使用率を取得するために Sigar を使用しています。 http://cpansearch.perl.org/src/DOUGM/hyperic-sigar-1.6.3-src/docs/javadoc/org/hyperic/sigar/Sigar.html#getProcCpu%28long%29
ただし、これはプロセス レベルにすぎません。htop は、アプリケーション内のスレッドと、それぞれが使用している CPU の割合を示しています。
Sigarでそれを行うことは可能ですか?
マルチコア ボックスを使用している場合、コアごとの CPU 使用率を取得できますか?
CPU が長時間 100% で実行されている場合にアラートを出し、スレッド リストで原因の可能性があるものを特定したいと考えています。
java - jar/exe にパッケージ化した後、SIGAR API が機能しない
SIGAR API を使用してシステム情報を収集しようとしています。ライブラリに sigar.jar を含めた後、Netbeans はsigar-amd64-winnt.dll
見つからないというエラーを出しました。そのファイルをライブラリに追加した後、完全に機能しました。
ここで、実行可能な jar を作成する必要があったため、NetBeans を使用してプロジェクトをビルドしました。Netbeans は .dll ファイルを自動的に削除し、手動で dist フォルダーにコピーした後、私のプログラムは機能しました。現在、Launch4j を使用して exe ファイルを作成しようとしています。実行すると、おそらく Launch4j が .dll ファイルを削除したため、Java 例外がスローされます。
Launch4j が exe ファイルに含まれていることを確認するにはどうすればよいですか?
SOに関する多数の回答を閲覧しましたが、問題を解決できませんでした。以下にいくつか言及しました-
sigar-amd64-winnt.dll ... 参照できない、または .jar にバンドルできない
どんな助けでも大歓迎です..
編集
exe ラッパーをテスト実行すると、Launch4j のログに次の例外が記録されます。
netbeans - Java Web Start で dll を読み込めないようです
Java webstart アプリケーションで大きな問題が発生しています。多くの解決策を試しましたが、最終的にはどれも正しく機能していないようです。
クライアント コンピューターに関する基本的なハードウェア情報をロードして、クライアントがシステムに接続し、コース 4 のソフトウェアを使用できるかどうかを確認するために、Web スタート アプレットを作成する必要があります。Sigar を使用して CPU とメモリの情報をロードし、JNI を使用してグラフィック カード名をチェックするカスタム C++ スクリプトをロードします (これは完全に機能します)。
すべての dll を src/resources フォルダーに配置して、それらを jar にロードしました。また、ここで "エンジン" と呼んでいるものも使用します。これは、指定された操作を実行するように分類されています (この場合、Jni エンジン、構成エンジン、およびデータ エンジン (以下のコード))、私は webstart を初めて使用するので、この概念がライブラリの読み込みでうまく機能するかどうかはわかりません。
Netbeans のライブラリとして jar に dll を追加しようとしましたが、jnlp に dll を追加しようとしましたが、実行するたびにそれが再作成され、プロジェクトのプロパティでそれらを追加できません。 dll が存在しない場合に備えて Java 一時ディレクトリに dll をロードするようにデータ エンジンを構築しましたが、Sigar はまだ動作したくありません。また、正しく構成された java.library.path に dll を配置しました (ローカルで動作するため)。
メインクラスをローカルで実行すると機能しますが (右クリックして実行)、実行ボタンをクリックして webstart をロードすると、次のエラーメッセージが表示されてクラッシュします (ConfigEngine で SigarBase を拡張すると発生します)。
JNLPClassLoader: ライブラリ sigar-amd64-winnt.dll.dll が見つかりません sigar-amd64-winnt.dll が java.library.path にあります org.hyperic.sigar.SigarException: sigar-amd64-winnt.dll が java.library.path にありません
コードは次のとおりです。
JNi エンジン (グラフィック カードの C++ コードを読み込みます)
ConfigEngine
最後に、すべてのdllをロードしてライブラリパスを変更しようとするデータエンジン(パッチのパッチであるため、ほとんどは一時的なものです)
また、メイン クラスにも問題があります (NetBeans は、私の JAppletForm をプロジェクトのメイン クラスにしたくないのですが、試行した何百ものパッチによってビルドが破損したため、おそらくプロジェクトを再作成します。私のメイン クラスConfigEngine の GetMap を使用して HashMap をロードし、ローカルの場合はコンソールに表示し、webstart で実行する場合は JAppletForm に表示します。
それはかなり大きな問題なので、質問があれば必要なすべての情報で質問を更新します。
java - プロセスに割り当てられている仮想メモリの量を調べる
特定のプロセスに割り当てられている仮想メモリの合計量を調べる方法はありますか? 私はプログラムを持っており、プロセスが使用しているメモリの量と使用するために残っているメモリの量を監視するパフォーマンストラッカーも入れています。
これを行うには、プロセスに割り当てられているメモリの量を知る必要があります。Javaでこれを行う方法はありますか? 私はWindows 7で実行しています。
また、私は現在、Sigar クラスを使用して他のメモリ統計を監視しています。sigar には、探しているものを見つけることができる特定のクラス/関数がありますか?