FileInputStream fileau=new FileInputStream("/1.mid" );
1.mid放在src目录下,可以正常读取这个文件。但是打包之后没有src目录但是1.mid和.class文件在一个目录下就是读不到这个文件。
请大家帮助看看,谢谢~

解决方案 »

  1.   

    你应该把1.mid放在class path 下,比如你的class path是在bin里面
      

  2.   

    InputStream is = ClassLoader.getSystemResourceAsStream("1.mid");好像是这样,你试试看
      

  3.   

    FileInputStream fileau=new FileInputStream("bin/1.mid" );
    改成这样后在Eclipse中可以正常读,但是打包后还是读不出来,请再帮忙看看!
      

  4.   

    InputStream is = new BufferedInputStream(new FileInputStream(new File("bin/1.mid")));
    也试过,还是不行
      

  5.   

    这就对了,因为你打包之后不会有bin这个文件夹了
    至于解决办法:FileInputStream fileau=new FileInputStream("1.mid" );不带/,试试看,
      

  6.   

    把jar所在的文件夹目录设置在classpath里
      

  7.   

    jar所在的文件夹目录设置在classpath里没看懂,怎么设置,说的详细点好吗?谢谢
      

  8.   

    试了三种相对路径,有两种通过
    new ImageIcon("./face/0.gif")
    new ImageIcon("face/0.gif")单单使用斜杠一种不通过
    new ImageIcon("/face/0.gif")
      

  9.   

    我的face文件夹与运行jar在同一文件夹
      

  10.   

    可以把你的face文件夹打包到jar中吗?我的意思就是,把一个swing的东西打成jar包,双击就可以执行,所以把mid文件放在其中做背景音乐,但是打包之后就读不到文件,但是在Eclipse中编译运行的时候可以找到。可能是我之前说的不清楚。
    请大家给些意见,谢谢
      

  11.   

    我就是打包后执行的
    用的new ImageIcon("./face/0.gif") 这个
      

  12.   

    String path = System.getProperty("user.dir")+ "/music/1.mid";
    music文件夹在你的项目根目录下
    这样试试看,打完jar之后也要把这个jar文件放在项目跟目录下
      

  13.   

    用new ImageIcon(this.getClass().getResource("0.gif")) 可以实现前提是,jar档案中 0.gif 与 Picture.class 在同一文件夹导入文件要使用import - filesystem
      

  14.   

    这个问题,我知道getClass().getResource("1.mid");
      

  15.   

    可以直接使用jar包中的资源文件
      

  16.   

    这位兄弟说的正确,今天抽空试了一下,
    getSystemResourceAsStream :从用来加载类的搜索路径打开具有指定名称的资源,以读取该资源