【问题标题】:How to make a portable app (jar+sqlite) in Java?如何用 Java 制作可移植的应用程序(jar+sqlite)?
【发布时间】:2014-03-14 18:20:08
【问题描述】:

我用 Eclipse 制作了一个小型 Java 应用程序(是的,很小,有 2 个表单和一个 SQLite 数据库)。当我在 Eclipse 中运行它时它可以工作。

我会尝试将其导出,并使其成为便携式应用程序(并放入 USB 密钥),但没有任何效果。

这是我连接数据库的代码:

DriverManager.getConnection("jdbc:sqlite:"+this.dbName);
DatabaseSQLite ConnBDD = new DatabaseSQLite("BDD/bdd.sqlite")

我必须改变什么?

这是我在 Eclipse 下的架构

[projects]
src
|-class
lib
|-sqlite-jdbc-3.7.2.jar
BDD
|-database.sqlite

【问题讨论】:

  • 'but nothing works' - 究竟在启动应用程序时什么不起作用?
  • (oups) App 和数据库之间的连接...

标签: java eclipse sqlite jdbc


【解决方案1】:

当我这样做的时候,我是这样做的:

首先,将 sqlite3.exe 放入文件夹 src/main/resources - 现在 sqlite3.exe 将作为资源文件在 jar 文件中。然后,将 sqlite3.exe(来自 JAR)复制到 system32(如果是 windows 且未安装 sqlite):

// Copy file SQLite3 into /Windows/System32
try {
    // CopyFromJar just copies file from JAR archive into some directory
    CopyFromJar fileManager = new CopyFromJar();
    fileManager.copyFile(new File("C:\\Windows\\System32\\sqlite3.exe"), "/sqlite3.exe");
} catch (IOException e) {
    ErrorFrame.showException(e);
}

其次,添加 sqlite-jdbc 作为项目的依赖。 最后,创建与数据库的连接:

// Path to database - if first time, then database.db will created in folder with program 
private static final String pathToDatabase = "jdbc:sqlite:database.db";

//..................

// Loading JDBC driver
Class.forName("org.sqlite.JDBC");

// Create connection
Connection con = DriverManager.getConnection(pathToDatabase);
Statement stat = con.createStatement();

【讨论】:

  • 投反对票?不是我,但它不起作用......(并排的jar和数据库,或文件夹'BDD'中的数据库)......
  • code public boolean connect () { try { connection = DriverManager.getConnection("jdbc:sqlite:database.sqlite"); requete = connection.createStatement(); requete.executeUpdate("PRAGMA 同步 = OFF;"); requete.setQueryTimeout(30);返回真; } catch(SQLException e) { // message = "out of memory" MsgBox.ShowMessage("PB");返回假; } } code
  • 用 Linux Mint 测试过,但没有用 windows 测试过,也许...?
  • 导出配置有问题?或架构配置?
  • 我没有看到 Class.forName("org.sqlite.JDBC");如果程序不工作,那么应该抛出异常。你的程序会抛出哪个异常?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-03-21
  • 2015-09-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-08
相关资源
最近更新 更多