2011-08-11 7 views
0

こんにちは私、このコマンドを実行する必要があります:私は手動でしようとした場合アクセス権

java.io.FileNotFoundException: /.../IeplcDeployRules.clx (Permission denied) 

:私は次のエラーを取得するパーサを作成しようとすると

docRules = DocumentBuilderFactory.newInstance() 
.newDocumentBuilder().parse(new File(IeplcDeployRules.clx)); 

をそれが動作するが、私はそれを書くことができないファイルを読むために許可されているためです。

-rwxr-xr-x 1 ieplcop ieplcdev 3424 Aug 11 17:16 IeplcDeployRules.clx 

Javaアプリケーションから読み取られる必要があるため、アクセス許可を変更する必要はありません。したがって、ファイルが読み取り専用モードで開かれるように指定する方法があります。

私はFile()parse()と.newDocumentBuilder()の可能なパラメータを見ていますが、それらのどれも操作が読み込み専用であると指定することはできません!!

どのように手続きをとっていいですか?

乾杯、 サント

+0

は、コードスニペットをしてください修正していただけますか?それは重要かもしれません。 – biziclop

+0

これはどのようなアプリケーションで起こっていますか?あなたはtomcatを使用していますか? –

+0

私はスニペットが何か分かりません。ごめんなさい。 – Stefano

答えて

4

私はDocumentBuilderが内部で何をするか分からない、私はそのソースを読まなければならないでしょう。しかし、Fileの代わりに別のInputSourceを使用することで、完全に制御できます。たとえば、FileReaderです。

documentBuilder.parse(new InputSource(new FileReader(...)); 
+0

私はすでに試しましたが、そのようなオブジェクトに解析を適用することはできません!ファイルまたはinputSourceのみが受け入れられます! – Stefano

+0

ええ、しかし、InputSourceは単なるラッパーです...私は例を追加しました –

0

代わりFileparse方法にInputStreamを渡す必要があります。例えば

docRules = DocumentBuilderFactory.newInstance() 
    .newDocumentBuilder().parse(new FileInputStream(new File("IeplcDeployRules.clx")));