• ベストアンサー

アプリケーションの実行で・・・

今までeclipseで実行していたものをコマンドプロンプトから実行させたいのですが、 C直下にSystemManagerを置き、 +SystemManager -conf test.properties main.policy -classes -com -sun -main -tool Main.class C:\SystemManager\classes>java -Djava.security.policy=conf/main.policy com.sun.main.tool.Main 以下のようにアプリケーションを実行すると、アプリケーションは起動しますが、java.security.AccessControlExceptionが発生してしまいます。 -Djava.security.policy=conf/main.policy ←この指定方法だと、ポリシーファイルが見えないようですが、 どのように指定すればうまくいくでしょうか? ご教授頂ければ幸いです。 よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • aton
  • ベストアンサー率47% (160/334)
回答No.2

参考URLによれば,セキュリティポリシーファイルを指定する例として, java -Djava.security.manager -Djava.security.policy=pURL SomeApp が挙げられ,『ここで pURL は、ポリシーファイルの位置を示す URL です』と書かれています。従って右辺値はURLのはずなので,Windowsでもデリミタは'/'で良いのではないかと思います。 ここでは他に,『(-Djava.security.policy=pURLで)セキュリティプロパティファイルで指定されたすべてのポリシーファイルに追加されてロードされます』とあるので,質問の状況は,もしかするとpURLのファイルに書かれている以外のポリシー(=システムポリシーやユーザーポリシー)に違反しているのかもしれません。 これを回避するためには, 『 次のように、「==」の付いた形を使うと、ここで指定されたポリシーファイルだけがロードされ、他のポリシーファイルは無視されます。 java -Djava.security.manager -Djava.security.policy==pURL SomeApp 』 とのことです。 また, 『 注:セキュリティプロパティファイルで policy.allowSystemProperty プロパティに false が設定されている場合は、-Djava.security.policy のポリシーファイルの値は (java コマンドと appletviewer コマンドのどちらの場合も) 無視されます。 』 とも書いてあるので,ここをチェックしてみる必要もあるかもしれません。 いずれにせよ,詳しい情報は参考URLにあるので,まずここを当ってみてください。

参考URL:
http://java.sun.com/j2se/1.3/ja/docs/ja/guide/security/spec/security-spec.doc3.html#23883

その他の回答 (1)

回答No.1

実行環境がWindowsですよね。 でしたらファイルの指定方法は conf\main.policyではないでしょうか?

関連するQ&A