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

似乎 java-process 没有读取文件的权限。你很可能正在使用 UAC 以及 MS 放入 Vista 中的所有其他烦人的东西。

我会做以下事情:

  • 检查文件权限。
  • 使用“以管理员身份运行”选项运行 java 代码
  • 关闭 UAC 并始终以管理员权限运行所有内容
于 2009-08-19T18:05:27.350 回答
0

从 1.6.0_14 开始,java 以不同于 1.6.0_13 的方式处理虚拟路径(符号链接),windows vista 在程序文件、文档和设置上大量使用它们。也许这是你的问题。

于 2009-09-21T16:58:34.147 回答