2

Vista のドキュメント フォルダにあるファイルを読み込もうとしています。フィールドは指定された場所に存在しますが、ファイルへの入力ストリームを開こうとすると、次のエラーが発生します

java.io.FileNotFoundException:  (Permission denied)
        at java.io.FileInputStream.open(Native Method)
        at java.io.FileInputStream.<init>(FileInputStream.java:106)
        at rtran.dao.CustomerDAO.insertCustomer(CustomerDAO.java:29)
        at rtran.action.AddCustomerAction.execute(AddCustomerAction.java:22)
        at rtran.controller.Controller.actionPerformed(Controller.java:85)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
        at java.awt.Component.processMouseEvent(Component.java:6041)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
        at java.awt.Component.processEvent(Component.java:5806)
        at java.awt.Container.processEvent(Container.java:2058)
        at java.awt.Component.dispatchEventImpl(Component.java:4413)
        at java.awt.Container.dispatchEventImpl(Container.java:2116)
        at java.awt.Component.dispatchEvent(Component.java:4243)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
        at java.awt.Container.dispatchEventImpl(Container.java:2102)
        at java.awt.Window.dispatchEventImpl(Window.java:2440)
        at java.awt.Component.dispatchEvent(Component.java:4243)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

これを解決する方法についてのアイデアはありますか??

アブドゥル・ハリク

4

3 に答える 3

1

読み取り専用ファイルに書き込もうとしている可能性はありますか?スタックトレースから、挿入メソッドを呼び出しています。

また、ファイルにアクセスするための権限がありますか?つまり、ファイル自体とその親ディレクトリ(およびその親など)に対する読み取り権限を意味します。

于 2009-08-19T17:59:20.403 に答える
0

1.6.0_14 から、Java は 1.6.0_13 以外の方法で仮想パス (シンボリック リンク) を処理し、Windows Vista はそれらをプログラム ファイル、ドキュメント、および設定で頻繁に使用します。多分これはあなたの問題です。

于 2009-09-21T16:58:34.147 に答える
0

java-process にファイルを読み取る権限がないようです。おそらく、UAC と、MS が Vista に追加したその他すべての煩わしいものを使用して実行しています。

私は次のことをします:

  • ファイルのパーミッションを確認してください。
  • 「管理者として実行」オプションを使用してJavaコードを実行します
  • UAC をオフにして、常に管理者権限ですべてを実行する
于 2009-08-19T18:05:27.350 に答える