gpt4 book ai didi

database - 如何建立适用于所有 Mac 的 Java DB 连接,以便其 JAR 能够在 Windows 10 上建立连接?

转载 作者:搜寻专家 更新时间:2023-10-30 23:26:48 25 4
gpt4 key购买 nike

我想让一个在 Mac 上用 Java 编写的工作程序可供 Windows 用户使用,但在 Windows 上连接失败并出现一条奇怪的错误消息,表明 Windows 正在 C::\windows\system32 中查找数据库。 SQLite 数据库与 Java 程序位于同一文件夹中:

Connection conn = DriverManager.getConnection("jdbc:sqlite:Databasess/Logic1.sqlite");

我制作了一个 JAR 并将其放在一个名为 Aurora 的文件夹中,所以它看起来像这样:

TeachingMachine
Aurora.v2.jar
Images
Audio
databases
Logic1.sqlite
Logic2.sqlite

将整个文件夹转移到另一台 Mac,它可以完美运行。将相同的文件夹传输到我运行 Windows10 的 HP,它立即给我一个错误,我从 HP 复制到我的 Mac:

JAVA.SQL ‘SQLEXCEPTION: path to ’databases/Logic1.sqlite’: C:\windows\system32:’databases’ does not exist

我搜索了有关 windows\system32 的帮助请求,以及错误消息的大部分内容。我发现有些人的问题涉及他们的代码中用于连接到 SQLite 或其他数据库的 gremlins,但到目前为止还没有人提到我在此处概述的问题。

我的 Windows PC 上有一个用于 system32 的文件夹,但我正在尝试一个我可以维护并分发给运行各种操作系统的人的程序。必须将我的数据库复制到 system32 中会弄巧成拙。

这与我使用了一年多的基本连接代码相同。当然,没有提到 system32


Connection conn = null;
try {
Class.forName("org.sqlite.JDBC");
conn = DriverManager.getConnection("jdbc:sqlite:databases/Logic2.sqlite");
return conn;
}catch (Exception e)

预期结果是我在任何 Mac 上尝试过的结果,而当我在 Windows 10 上运行相同代码时的实际结果是我只收到一条错误消息。

最佳答案

您遇到的问题是进程使用的默认目录。

在 Windows 上,它显然使用 c:\windows\system32。

在 Mac 上,它使用您的应用程序文件夹。

因此,您需要为数据库 URL 指定绝对路径,或者需要更改应用程序的当前工作目录。

关于database - 如何建立适用于所有 Mac 的 Java DB 连接,以便其 JAR 能够在 Windows 10 上建立连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55973788/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com