2011-12-19 11 views
0

JNIを使​​用してVM引数を取得できるかどうか知りたいですか?JNIを使​​用してVM引数を取得する

独自APIを使用すると、独自のJVMを作成する場合にVM引数を指定できます。

私ができることを望むのは、通常のJavaランチャーを使用して起動している、すでに動作しているJVMからこれらの引数をJNIで照会することです。私は、JMXがそうすることができるので、可能でなければならないと信じています。

私は非常にextensivleyを検索しましたが、解決策はまだ見つかりませんでした。事前 CND

PSで

感謝。 RuntimeMXBean.getInputArguments()を使用してこれらを照会することは可能ですが、これをネイティブにJNIで行う必要があります。

+0

このメソッドは、JNIから呼び出すことができます。すなわちJavaにコールバックする。 –

+0

私はJavaにコールバックを行い、RuntimeMXBean.getInputArguments()を使用できることを知っていますが、私がこの記事で提案したように、ネイティブ呼び出しを使用し、Javaをコールバックする必要はありません – CND

+0

なぜそうできますか?多くのJNI呼び出しがこれを行います。これがシステムの問題であれば、他の問題が発生する可能性があります。別のオプションは、ライブラリを変更しないでロードするときに、入力引数を使用してメソッドを呼び出すことです。 –

答えて

0

RuntimeMXBean.getInputArguments()は、不変なコレクションを返すVMMangementImpl.getVmArgumentsを呼び出すため、改ざんが困難です。

http://www.java2s.com/Open-Source/Java-Document/6.0-JDK-Modules-sun/management/sun/management/VMManagementImpl.java.htm

これは、順番にネイティブメソッドgetVmArguments0を()呼び出しと、このメソッドのソースは、OpenJDKの中で使用可能です。このメソッドが呼び出すものを呼び出すことができます。

関連する問題