java.io.FileNotFoundException: file:/opt/signin.jar!/date (没有那个文件或目录)
        at java.io.FileInputStream.open(Native Method)
        at java.io.FileInputStream.<init>(FileInputStream.java:135)
        at java.io.FileInputStream.<init>(FileInputStream.java:95)
        at com.cess.util.FileUtil.readFileToList(FileUtil.java:46)
        at com.cess.job.MyTimer.run(MyTimer.java:28)我打开了一下,signin.jar下有date这个文件,但是它一直报错说找不到,怎么解决啊?
哦,我程序中这样写的MyTimer.class.getResource("/date");

解决方案 »

  1.   

    打包进jar包后需要用Class.getResourceAsStream()方法读。看看API就知道了
      

  2.   

    file:/opt/signin.jar!/date
    为什么中间有个感叹号?
      

  3.   

    谢谢,学习了。不过我已经改成访问和jar包同级文件的方式来操作了。这样毕竟自由度很高啊。
    代码如下//得到jar包的位置。比如:c:\test.jar 
    public static String getJREPath(){
     URL url; 
    // 得到jar程序的路径 
    url = FileUtil.class.getProtectionDomain().getCodeSource().getLocation();
     // 将url路径转码,主要应用于汉字
     String temp = "";
     try {
     temp = URLDecoder.decode(url.getFile(), "UTF-8"); 
    } catch (UnsupportedEncodingException e1) { e1.printStackTrace(); }
     return temp;
     }
     //得到jar同目录的文件路径,参数是文件的名称 
    public static String getJARPathFile(String fileName){
     return new File(getJREPath()).getParent()+File.separator+fileName;