运行环境tomcat+jdk1.5共享文件放在1台单独的机器上面当同样的软件,部署到2台不同的机器上时可其中一台总是提示FileNotFoundException(访问拒绝)可有的时候,又不提示这种问题,访问代码和定义如下 public static final String BIG_IMAGE_PATH="\\\\130.130.15.8\\web\\ImageUpload\\"; file = new File(BIG_IMAGE_PATH+filename);               if(file.length()>0)
               {
                   fileStream = new FileInputStream(file);
                   data = new byte[(int)file.length()];
                   fileStream.read(data);
                   fileStream.close();
               }我就纳闷,为什同样的代码,会出现这么的问题希望有人能够解答我的问题谢谢呢!

解决方案 »

  1.   

    \\这种是Windows的共享方式,可能是走NetBios协议的,首先这种协议就快要被淘汰了(IBM时代的产物,以后都是IP协议了),
    第二,不同机器之间的共享设置等等都会影响共享的效果。研究一下的Windows共享,还有防火墙。PS:我惊诧的是Java还支持NetBios.
      

  2.   

    JAVA并不要支持这样的协议
    虚拟机还不是问系统要
    系统返回就是了 
      

  3.   

    放共享文件的那台机器的共享设置应该是没有问题的如果有问题,应该是2台都不能访问不会出现,一台可以访问,另一台不能访问的形式了后来,我把共享改了下在不能访问的那台机器上,做了个网络映射把\\\130.130.15.8\\web\\ 映射成了本地驱动G盘那么源代码变为了public   static   final   String   BIG_IMAGE_PATH="g:\\ImageUpload\\";   file   =   new   File(BIG_IMAGE_PATH+filename);                               if(file.length()> 0) 
                                  { 
                                          fileStream   =   new   FileInputStream(file); 
                                          data   =   new   byte[(int)file.length()]; 
                                          fileStream.read(data); 
                                          fileStream.close(); 
                                  } 在有时能访问到文件,有时候又不能真是奇怪的问题
      

  4.   

    如何是WEB我会理解为缓存问题
    这里我就只能客观的说是系统问题啦..呵呵 
    关注中
      

  5.   

    如果在tomcat的bin目录下,采用startup.bat的方式启动tomcat那么就不会出现上述问题,但是log的输出却到控制台中了,没有保存为文件的形式原因是什么在google/baidu中都一直没有找到答案:(毕竟已经解决了找不到文件的方法了补充说明:之前一直说有2台机器用了相同的文件,1台能找到网络路径,另1台则找不到其中一台我是在jbuilder下运行的,能找到后来我把应用部署到这台机器中的tomcat下,采用tomcat运行,而不是jbuider 自带的tomcat运行,则也找不到后来采用startup.bat的方式启动,就可以了。嗨,真是奇怪!
      

  6.   

    这个问题我刚刚处理过了,我的也是通过startup.bat启动tomcat时没有问题,但是通过windows的服务启动就会出跟你一样的问题。因为windows里面tomacat服务的logon默认是localservice方法一 :logon由localservice改成netservice重新启动服务,方法二 :新建一个user设置密码,所属添加为administrator,然后把logon换成新建的user重新启动服务。
      

  7.   

    这个问题我的感觉其实并不是说找不到文件,是tomcat实际用到window系统中的用户来进行远程访问,但是默认的用户不具有权限访问被拒绝了。但是通过startup.bat来启动,因为本身startup.bat启动有一些相应的启动参数补充了访问权限的问题,所以没有出错吧。呵呵,个人的一点粗浅的认识,还请各位前辈指正。
      

  8.   

    感觉ID为“亮亮”的解决方法好像比较对只有等明天去单位试试了但是好像不知道在哪改啊,所说的方法一的设置方法一 :logon由localservice改成netservice重新启动服务,