Java Intellij Windows 10 SQLite访问被拒绝

Java Intellij Windows 10 SQLite访问被拒绝,java,intellij-idea,sqlite,windows-10,Java,Intellij Idea,Sqlite,Windows 10,这是一个连接到sqlite数据库的Java项目。我真的不知道问题出在哪里,我正在为我的经理制作一个登录应用程序这是我的代码: package dbUtil; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class dbConnection { public static final String USERNAME = "dbuser"; publ

这是一个连接到sqlite数据库的Java项目。我真的不知道问题出在哪里,我正在为我的经理制作一个登录应用程序这是我的代码:

package dbUtil;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;


public class dbConnection {
public static final String USERNAME = "dbuser";
public static final String PASSWORD = "dbpassword";
public static final String CONN = "jdbc:mysql:\\localhost/login";
public static final String SQCONN = "jdbc:sqlite:\\dbname.sqlite";

public static Connection getConnection() throws SQLException{
    try{
        Class.forName("org.sqlite.JDBC");
        return DriverManager.getConnection(SQCONN);
    }catch (ClassNotFoundException e){
        e.printStackTrace();
    }
    return null;
}
}
这是我发现的错误,我不知道到底发生了什么:

java.sql.SQLException: opening db: '\dbname.sqlite': Access is denied
at org.sqlite.core.CoreConnection.open(CoreConnection.java:203)
at org.sqlite.core.CoreConnection.<init>(CoreConnection.java:76)
at org.sqlite.jdbc3.JDBC3Connection.<init>(JDBC3Connection.java:25)
at org.sqlite.jdbc4.JDBC4Connection.<init>(JDBC4Connection.java:24)
at org.sqlite.SQLiteConnection.<init>(SQLiteConnection.java:45)
at org.sqlite.JDBC.createConnection(JDBC.java:114)
at org.sqlite.JDBC.connect(JDBC.java:88)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:270)
at dbUtil.dbConnection.getConnection(dbConnection.java:20)
at LoginApp.LoginModel.<init>(LoginModel.java:18)
at LoginApp.LoginController.<init>(LoginController.java:19)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at java.lang.Class.newInstance(Class.java:442)
at sun.reflect.misc.ReflectUtil.newInstance(ReflectUtil.java:51)
at javafx.fxml.FXMLLoader$ValueElement.processAttribute(FXMLLoader.java:927)
at javafx.fxml.FXMLLoader$InstanceDeclarationElement.processAttribute(FXMLLoader.java:971)
at javafx.fxml.FXMLLoader$Element.processStartElement(FXMLLoader.java:220)
at javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.java:744)
at javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2707)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2527)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3214)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3175)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3148)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3124)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3104)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:3097)
at LoginApp.LoginApp.start(LoginApp.java:15)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(LauncherImpl.java:863)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(PlatformImpl.java:326)
at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191)
at java.lang.Thread.run(Thread.java:745)
java.sql.SQLException:打开数据库:'\dbname.sqlite':访问被拒绝
位于org.sqlite.core.CoreConnection.open(CoreConnection.java:203)
在org.sqlite.core.CoreConnection(CoreConnection.java:76)
位于org.sqlite.jdbc3.JDBC3Connection(JDBC3Connection.java:25)
位于org.sqlite.jdbc4.JDBC4Connection(JDBC4Connection.java:24)
在org.sqlite.SQLiteConnection.(SQLiteConnection.java:45)
位于org.sqlite.JDBC.createConnection(JDBC.java:114)
位于org.sqlite.JDBC.connect(JDBC.java:88)
位于java.sql.DriverManager.getConnection(DriverManager.java:664)
位于java.sql.DriverManager.getConnection(DriverManager.java:270)
位于dbUtil.dbConnection.getConnection(dbConnection.java:20)
在LoginApp.LoginModel(LoginModel.java:18)
在LoginApp.LoginController。(LoginController.java:19)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:423)
位于java.lang.Class.newInstance(Class.java:442)
位于sun.reflect.misc.reflectil.newInstance(reflectil.java:51)
在javafx.fxml.fxmloader$ValueElement.processAttribute(fxmloader.java:927)中
在javafx.fxml.fxmloader$InstanceDecrationElement.processAttribute中(FXMLLoader.java:971)
在javafx.fxml.fxmloader$Element.processStartElement(fxmloader.java:220)
在javafx.fxml.fxmloader$ValueElement.processStartElement(fxmloader.java:744)
在javafx.fxml.fxmloader.processStartElement(fxmloader.java:2707)
在javafx.fxml.fxmloader.loadImpl(fxmloader.java:2527)
在javafx.fxml.fxmloader.loadImpl(fxmloader.java:2441)
在javafx.fxml.fxmloader.loadImpl(fxmloader.java:3214)
在javafx.fxml.fxmloader.loadImpl(fxmloader.java:3175)
在javafx.fxml.fxmloader.loadImpl(fxmloader.java:3148)
在javafx.fxml.fxmloader.loadImpl(fxmloader.java:3124)
在javafx.fxml.fxmloader.loadImpl(fxmloader.java:3104)
在javafx.fxml.fxmloader.load(fxmloader.java:3097)
在LoginApp.LoginApp.start(LoginApp.java:15)
在com.sun.javafx.application.launchempl.lambda$launchApplication1$162(launchempl.java:863)
位于com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(PlatformImpl.java:326)
位于com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295)
位于java.security.AccessController.doPrivileged(本机方法)
位于com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294)
位于com.sun.glass.ui.invokelateDispatcher$Future.run(invokelateDispatcher.java:95)
在com.sun.glass.ui.win.WinApplication.\u runLoop(本机方法)
位于com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191)
运行(Thread.java:745)
PS:我找到了某人的评论,但我没有完全理解他的意思:
在观看此视频之前,我创建了一个SQLite数据库,并将其保存在另一个目录中。对于我的项目,我没有像Awais在视频中那样创建一个新的.sqlite。我正在使用sqlite Studio将原始数据库导出到一个新的.sqlite文件。这就是为什么我无法登录(1:20:00)数据库的问题。如果将数据库导出到新数据库中,SQLite Studio显然会对其进行加密;这意味着您的程序无法访问其内容。我所做的是复制我创建的原始数据库,并将其移动到project/src目录中。这是我的问题。Awais不太清楚他在视频开始时是如何将数据库复制到项目目录的,所以我对这一步有点迟钝,并没有对我的数据库执行。不要跳过这一步。祝你好运。

可能重复的可能重复我已经用“dbname.db”更改了“dbname.sqlite”,但我发现了相同的结果。@MustaZIR查看一下目录/文件夹/文件权限吗?@Rick系统完全控制了文件,所以这并没有解决我的问题。