用java 写了一个通讯录的小程序,数据源是个excel文件,调试时读取添加都可以
但将程序打包成可运行的jar文件时,能读到这个excel文件的数据,但是无法更改更新操作的代码
public static boolean UpdatePeople(People pe)
{
boolean bFlag = false;
try
{
InputStream is = Main.class.getResourceAsStream(sourcefile);
Workbook wb = Workbook.getWorkbook(is);
OutputStream os = new FileOutputStream(Main.class.getResource(sourcefile).getPath());
WritableWorkbook wwb = Workbook.createWorkbook(os,wb);
wb.close();
WritableSheet wws = wwb.getSheet(0);
int Row = pe.iRow;
wws.addCell(new Label(0,Row,String.valueOf(pe.iRow)));
wws.addCell(new Label(1,Row,pe.name));
wws.addCell(new Label(2,Row,pe.mobileTelePhone));
wws.addCell(new Label(3,Row,pe.lineTelePhone));
wws.addCell(new Label(4,Row,pe.qq));
wws.addCell(new Label(5,Row,pe.email));
wws.addCell(new Label(6,Row,pe.address));
wws.addCell(new Label(7,Row,pe.birthday));
wws.addCell(new Label(8,Row,pe.group));
wwb.write();
wwb.close();
bFlag = true;
}
catch(Exception e)
{
e.printStackTrace();
}
return bFlag;
}

解决方案 »

  1.   

    excel文件,你放到jar文件里,怎么能写呢?肯定 不能写,读写的excel不要打包到jar中,使用相对路径就能访问。
    比如,放到和jar包相同的目录
    new File(".",excel)就能访问了。
      

  2.   

    本来这个问题是我问的然后这个哥们帮我发的。。
    但是这个程序在eclipse环境里,excel表也是放在代码同个目录下的,都可以访问,也可以修改,但是打包打到外面就只能访问不能修改了啊。。2楼说的同一个目录,在源文件里也是同个目录,也可以修改的。不知道各位高手们这种excel表都是怎么用的啊?比如说打包后不跟包放在一起?那客户运行怎么运行呢?用户并不知道目录放在哪啊。。难道把这个整体再导成exe文件去运行?这个我没用过也是第一次写java程序,所以问题很多很多在这里学习下了。。csdn论坛上哥们的真热情啊!!