我用了一个包jar,由于没有jar包的源码,而此JAR包对文件的访问使用的是绝对路径的问题,原来这个jar是在LINUX下使用的
它访问到一个文件路径为:\usr\local\jdk\jre\lib\security\jssecacerts,而我本机是windows的尽量我在所有盘的根目录放了相应的文件了.如:c:\usr\local\jdk\jre\lib\security\jssecacerts但运行后依然提示拒绝访问,错误信息如下所示:
java.io.FileNotFoundException: \usr\local\jdk\jre\lib\security\jssecacerts (拒绝访问。)
请问我在windows环境下要怎样才可以构造出这么一个路径呢?\usr\local\jdk\jre\lib\security\jssecacerts 

解决方案 »

  1.   

    这个是写死在 JAR 包中的?
      

  2.   

    FileNotFoundException这几个字不认识
    你确定你这个路径是否存在啊!
      

  3.   

    这种 API 写得真是的。不从配置文件读取路径也就算了,那至少也得从系统属性 System.getProperty 中读取吧。
      

  4.   

    是写死的.原来这个jar包都是linux下用的.但现在我要在本机上调试,
    有没什么方法可以构造出这么一个路径出来.
      

  5.   


    我失误了你的java类放在什么盘,比如F盘,构造出F:\usr\local\jdk\jre\lib\security\jssecacerts试试
      

  6.   

    你可以使用cygwin模拟linux环境 ,但是就是能构造出来也没有多大意义。
    因为程序包就写死了一个linux的路径,在这个windows上就算能跑起来,拿到其它的windows上一样不行。
      

  7.   

    Cygwin 可以模拟,但是要模拟这个路径用 Cygwin 有点不值。如果可能的话,让 API 提供方改一下是最佳的途径。
      

  8.   

    有看到
    http://www.enet.com.cn/article/2007/0925/A20070925842824.shtml
    但看起来挺麻烦的,还要另外实现java.io.File,而且没给出全部的源代码.
    不知道哪位能帮一下忙.F:\usr\local\jdk\jre\lib\security\jssecacerts试过了,刚才说了,所有盘我都放这个目录和文件了.但依然访问不到.
      

  9.   

    现在没办法改API,因为手上没源代码,JAR包也是第三方提供的.
      

  10.   

    这样当然访问不到了。对使用cygwin模拟是不值,而且也不是正确的做法。