gpt4 book ai didi

未在 Windows Server 上创建 Java 文件

转载 作者:行者123 更新时间:2023-12-02 06:29:34 25 4
gpt4 key购买 nike

我的应用程序必须创建一个 .db 文件才能工作。如果该文件不存在,我的应用程序将创建它。但是,在 Windows 的某些版本(例如 Windows Server)上,永远不会创建该文件。另外我确信该文件夹具有完整的读/写权限。

这是我创建文件的代码:

String databaseFileLocation = "";
String fileSeparator = System.getProperty("file.separator");
String homeDir = System.getProperty("user.home");
File myAppDir = new File(homeDir, ".someApp");

databaseFileLocation = "jdbc:sqlite:" + myAppDir + fileSeparator + "history_" + userID + ".db";

Class.forName("org.sqlite.JDBC");
Connection conn = DriverManager.getConnection(databaseFileLocation);
Statement stat = conn.createStatement();
stat.executeUpdate("CREATE TABLE IF NOT EXISTS chatHistory (channelID, sender, message, recipient, time);");

它适用于 Win 7、Win XP、Win Vista 等。但在 Win Server 上它不会被创建。即使我有权限。

有什么想法可能导致这种情况吗?

编辑

这就是我创建目录的方式:

        String homeDir = System.getProperty("user.home");
File myAppDir = new File(homeDir, ".someApp");

// if the directory does not exist, create it
if (!myAppDir.exists()) {
System.out.println("creating directory: " + myAppDir);
boolean result = myAppDir.mkdir();

if (result) {
System.out.println("DIR created");
}
}

最佳答案

如果无法创建文件,您应该会收到错误消息。检查应用程序的错误处理。

如果您没有得到该文件,则该文件可能已创建,但不在您期望的位置。

我建议在代码中添加一些日志记录:

log.debug("path="+myAppDir.getAbsolutePath());
log.debug("url="+databaseFileLocation);

或者,使用 Process Monitor查看您的应用程序正在做什么。

关于未在 Windows Server 上创建 Java 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20190329/

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