【发布时间】:2013-08-13 18:09:28
【问题描述】:
我使用 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 文件:
Launch4j
再次感谢您的帮助:)
【问题讨论】:
-
您的 Windows 用户可能没有写入 C:\users 目录的所有权限。尝试写入临时目录 (%temp%)
-
这是非常糟糕的编程习惯。你只是在吃掉引发的异常。然后,您将如何确定实际发生了什么异常。
-
更改 (1) 程序,从命令行获取 LOCATION 作为输入,以使您的程序更灵活。 (2) 打印异常的堆栈跟踪。
-
Ankur 注意到,我会尝试看看是否收到异常。 MrSimpleMind 我会试着看看你所说的
标签: java jar filewriter