我做的一个Swing程序,程序里面带Access数据库,
现在想使用Java Web Start 发布,但是如果我把Access打入Jar包中,程序将无法访问Access数据库。/**
* 建立Access数据库连接
*/
public Connection getConnection() throws SQLException{
    Connection conn = null;
    try {
Class.forName(driver);
 
String realPath = getAppPath(DataSource.class);
System.out.println(realPath);
            //Context.configDir  为数据库的路径,如:"c:/jswing/"  在没有打包前是这样做的。
String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ="+ Context.configDir + "db.mdb"; conn = DriverManager.getConnection(url, user, pwd);
    } catch (ClassNotFoundException e) {
e.printStackTrace();
    } catch (SQLException e) {
throw e;
    } 
    return conn;
}
我该如何做?  
1 如果能把Access打包,该如何写?
2 如果从JWS招手解决 ,该如何做?
多谢各位帮忙??

解决方案 »

  1.   

    如果将程序打包,只有在import类的时候他会去自身的jar中查找目录(路径),剩下所有获取当前目录的操作都是在这个jar文件所在目录,而不可能为jar内部的路径。
    建议数据库不要打包,通过相对路径来查找数据库文件。
      

  2.   

    我倒是想用绝对路径 ,只不过 jws 发布后 根本找不到路径。解决办法如下:
    把数据库打入jar包中, 当程序第一次启动时,把数据库文件导出到用户home下,即可以使用这种解决如何?
      

  3.   

    我还有问题,请熟悉jws的朋友告知
    从 桌面的快捷方式启动,为什么不更新程序呢?而在网页上启动确可以更新?
      

  4.   

    我现在也遇到和楼主一样的问题 发布一个Java程序的时候 打包成.jar的文件的时候 因为引用包太多了 所以就报行太长的错误 但是我如果把那个classpath写几行的话 他就包格式错误 楼主解决后 麻烦和我说一下 谢谢