3

このコードを使用して、ポリシーファイルを設定してみてください。

ClassLoader cl= getClass().getClassLoader();
URL policyURL =cl.getResource("res/policy/new_policy.policy");
System.setProperty("java.security.policy", policyURL.toString());

そして、私java.lang.NullPointerExceptionは最後の行になります。ファイルは私のプロジェクトディレクトリの正しいパスにあります。

質問:この例外の原因は何ですか?

回答:Eclipseから実行すると、パスはプロジェクトのbinフォルダーではなく、メインのプロジェクトフォルダーを基準にして作成されました。それを考慮して、binフォルダー内のresフォルダーを移動すると、上記のコードを変更せずに問題が解決しました。

4

2 に答える 2

1

パスがプロジェクト内にある場合は、/

cl.getResource("/res/policy/new_policy.policy")

ただし、の値をpolicyURL出力して、ファイルが正常に取得されたことを確認することをお勧めします。

Eclipseで実行している場合は、ビルド時にリソースがclassesフォルダーに移動するように、リソースがresourcesフォルダーにある必要があることに注意してください。

Eclipseはクラスのみを実行し、クラスは出力フォルダー(bin)に存在します。

于 2012-09-18T13:31:03.803 に答える
1

これは、次の場合に発生します。

policyURL.toString()

プロパティ値がHashtableに格納され、Hashtableクラスがputメソッドで値がnullかどうかをチェックし、nullの場合はNullPointerExceptionをスローするため、はnullです。policyUrlオブジェクトが正しく作成されていることを確認します。

于 2012-09-18T13:37:13.213 に答える