java.io.FileNotFoundException :(权限被拒绝)

时间:2009-08-19 17:56:10

标签: java windows-vista file-permissions

我想要阅读放在vista上我的文档文件夹中的文件。 fiel确实存在于指定的位置,但在尝试打开文件的输入流时仍然出现以下错误

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)

关于如何解决这个问题的任何想法??

Abdul Khaliq

3 个答案:

答案 0 :(得分:1)

您是否有可能尝试写入只读文件?从堆栈跟踪中,您将调用insert方法。

此外,您是否有权访问该文件?我的意思是对文件本身及其父目录(及其父目录等)的读取权限。

答案 1 :(得分:0)

似乎java-process缺少读取文件的权限。你是在运行UAC以及MS投入Vista的所有其他令人讨厌的东西的问题。

我会做以下事情:

  • 检查文件权限。
  • 使用“以管理员身份运行”-option
  • 运行java代码
  • 关闭UAC并始终使用admin-rights
  • 运行所有内容

答案 2 :(得分:0)

从1.6.0_14开始,java除了1.6.0_13处理虚拟路径(符号链接)之外还做了其他方式,而windows vista在程序文件,文档和设置上大量使用它们。也许这是你的问题。