1

我使用 Netbeans 创建了一个相对简单的 GUI 应用程序,它可以访问 mySQL DB 并为另一个 GUI 程序创建表。该程序将询问用户 mySQL 用户名和密码,将这些凭据以加密形式存储在记事本中,以便稍后解密和读取,然后继续创建数据库组件。

我的程序在我的 PC 上运行完美,当我尝试将程序传输到另一台计算机时会出现问题。当我运行Netbeans中dir文件夹中的.jar文件时,数据库组件创建正常,但没有出现应该在C:驱动器中创建的记事本。

这会导致我的其他程序无法运行,因为它需要 mySQL 用户名和密码来创建与数据库的连接。我将这些代码用于文件编写器:

private static PrintWriter pw;
private static final String LOCATION = "C:\\Users\\DONOTDELETE.txt";

public static void Log(String user, String pass) {
    try {
        pw = new PrintWriter(new FileWriter(LOCATION));
        pw.println(Encryption.encrypt(user));
        pw.println(Encryption.encrypt(pass));
        pw.flush();
    } catch (Exception e) {
    }
}

在此先感谢您的任何回复,现在我将尝试对其进行一些修改。

更新:我已经解决了这个问题!感谢大家的建议,我确定问题只是管理员访问的问题。AFAIK,通常您不能以管理员身份运行 .jar 文件,因此我选择使用该程序将 .jar 文件更改为 .exe 文件:

启动4j

再次感谢您的帮助:)

4

3 回答 3

0

检查该PC中的管理员权限,可能无法访问C盘。

于 2013-08-12T12:27:13.753 回答
0

问题是您使用的是硬编码路径,该路径在非 Windows 系统上不可用,并且在用户不是管理员的 Windows 系统上不可写。相反,请使用属性文件来存储要存储凭据的路径。

于 2013-08-12T12:27:22.413 回答
0

这种行为可能有几个原因。首先,

} catch (Exception e) {
}

您刚刚吃掉了异常,因此您无法确定到底出了什么问题。如果您知道您无法处理异常,请不要捕获它。让异常被引发,它会帮助你知道到底出了什么问题。

其次,您在从指定目录写入或读取时可能会遇到权限问题。当您吃掉异常时,控制台上不会显示任何内容。尝试打印异常的堆栈跟踪,它可以帮助您了解问题的要点。

于 2013-08-12T12:28:51.230 回答