0

JVM ツール インターフェイスを使用しています。SetSystemProperty() 呼び出しを使用して Agent_OnLoad イベントで SystemProperty を作成しようとしています。プロパティが存在する場合、新しい値が正しく設定されます。ただし、プロパティが存在しない場合、SetSystemProperty はプロパティを書き込めないことを示すエラー コードを返します (エラー 98)。

クラスがロードされる前に、JVM の初期段階でシステム プロパティを作成する別の方法はありますか?

2012 年 5 月 24 日更新: エージェントとして、さまざまなプログラムに負荷をかけられています。プログラムにこのプロパティを設定するように要求することはできません (私の使用例では実用的ではありません)。エージェント コード自体からプロパティを設定する方法を探しています。いろいろ試した結果、無理だという結論に達しました。

4

2 に答える 2

1

システム プロパティの JVMTI ドキュメントをまだ見ていない場合は、次のことを確認する価値があります。

http://docs.oracle.com/javase/6/docs/platform/jvmti/jvmti.html#props

VM のシステム プロパティと によって管理されるプロパティは区別されているようjava.lang.Systemです。を介して使用できるプロパティを本当に設定したい場合System.getPropertyは、おそらく JNI を介して設定することになります (JVMTI ドキュメントによる)。

于 2012-05-24T14:15:44.913 に答える
0

-D<property name>=<property value>コマンド ラインから起動するときに使用するプロパティを追加します。

システム プロパティは、VM の起動時に使用される前に設定される場合があります

http://docs.oracle.com/javase/1.5.0/docs/guide/jvmti/jvmti.html#startingから取得

于 2012-05-23T11:23:11.647 に答える