发生exception后程序当然就退出了

解决方案 »

  1.   

    程序直接在ide环境下运行没问题,现在就是想生成.jar文件。
      

  2.   

    是这样的,我的程序中用到了当前路径下的pic目录下的文件。
    setIcon(new javax.swing.ImageIcon(getClass().getResource("/pic/wrong.gif")));
    而我生成.jar时将该文件也包含进来了,但就是这句有错误。如果我讲这句屏蔽掉,就没问题了。上面的语句不就是以当前路径为准的吗?
      

  3.   

    那不行,ImageIcon的构造函数并不会自动解压jar包,你必须把/pic/wrong.gif放到和jar同一个目录里头。你犯了个低级错误,不管是从jar中运行程序,还是从class直接运行,当前工作目录信息都是一样的,你不能认为从jar运行,所有东西的起点便是jar文件,再比如:
    FileReader fr = new FileReader("a.txt");
    是打开当前目录下的a.txt,而不是压缩包中押着的a.txt。jar紧紧是java以压缩方式存放类文件的机制。
      

  4.   

    但是,我如果写成这样:setIcon(new javax.swing.ImageIcon("/pic/wrong.gif"));那么在.jar 中直接可以运行,但在ide环境下,却显示不出来了,我想在两种环境下,显示都没问题,应该怎么写?