2011-04-15 20 views
0

Windows XP OSでJDK 1.6を使用しています。 java.ext.dirsシステムプロパティの値を出力する単純なJavaプログラムを実行:java.ext.dirs Javaのシステムプロパティ

System.getProperty("java.ext.dirs") 

プリント:

C:\プログラムファイル\のJava \ jre6に\ libに\ extに; C:\ WINDOWS \日\のJava \ lib \ ext

印刷された2つのディレクトリのうち、2番目のディレクトリは私のシステムに存在しません。C:\WINDOWS\Sun\Java\lib\extディレクトリは私のシステムで利用できません。

私は理解していません、なぜJavaはjava.ext.dirs プロパティのこの不正なディレクトリ値を返しますか? そして、この値をjava.ext.dirsプロパティから削除するにはどうすればよいですか?

+0

ところで、できるだけ早くWindows XP上のシステムに移動してください... Microsoftはもうこのヴィンテージオペレーティングシステム用のセキュリティパッチを提供していません – ErstwhileIII

答えて

2

Javaがjava.ext.dirsプロパティに対してこの不正なディレクトリ値を返すのはなぜですか?

JVMが表示される場所が返されます。存在しないディレクトリがリストにある場合、私はそれが静かに無視されると思います。あなたは何か違うことを観察していますか?

そして、この値をjava.ext.dirsプロパティから削除するにはどうすればよいですか?

this pageを読むと、プロパティを設定できるはずです。 (同じページに、パスがどのように使われ、どのようにデフォルトが決まるかが説明されています)。

おそらくコマンドラインから設定する必要があります。例えば-Djava.ext.dirs=...を使用する。私は、JVMがブートストラップした後にプロパティを変更しても何の効果もないことを期待しています。

+0

いいえ、プログラムはエラーなしで実行されますが、セキュリティマネージャ(-Djava.security.debug = all -Djavax.net.debug = all -Djava.security.manager)を有効にすると、メッセージが表示されます例外: 'java.lang.IllegalArgumentException:null KeyStore name at sun.security.util.PolicyUtil.getKeyStore(Unknown Source)'。上記のスタックトレースを投稿しました。 – Vicky

+0

これはあなたが必要としないものだと思いますあなたが心配している場合、欠落しているディレクトリを作成してください。そこには何もありません。 –

2

これは、Javaが拡張機能を探すディレクトリです。もしディレクトリの1つがそこになければ、そこに拡張子はありません。大きな問題はありません、なぜそれは重要ですか?

いずれにしても、ご希望の場合は、Javaコマンドラインで-Djava.ext.dirs=PATHを提供することができます。

+0

実際に、セキュリティマネージャを有効にしてログメッセージを表示しようとしました。私のJavaプログラム。私のプログラムは中断しませんでしたが、ログメッセージの中でスタックトレースの下に見ることができました: – Vicky

+0

ポリシー:ファイルの読み込み:/ C:/Program%20Files/Java/jre6/lib/security/java.policy \t [Policy Parser]:拡張java.ext.dirsのポリシーエントリを作成するパス: \t \tファイル:/ C:/ Program%20Files/Java/jre6/lib/ext/* \t [ポリシーパーサー]:拡張java.extのポリシーエントリを作成します。 DIRSパス: \t \tファイル:/ C:/ WINDOWS /日/のJava/libに/ EXT/* java.lang.IllegalArgumentExceptionが:nullのキーストア名 \t sun.security.util.PolicyUtil.getKeyStoreで(不明なソース) \t at sun.security.provider.Po licyFile.init(不明なソース) \t sun.security.provider.PolicyFile.access $ 400(不明なソース) \t sun.security.provider.PolicyFile $ 3(Unknown Sou – Vicky