java.sql.SQLException:打开数据库:'DB-NAME.sqlite':权限被拒绝

java.sql.SQLException:打开数据库:'DB-NAME.sqlite':权限被拒绝

问题描述:

我在Ubuntu14上使用Netbeans IDE 8.2开发了一个Java应用程序项目。如何使用Netbeans IDE(.deb)Native Packaging为Linux系统安装其安装程序。上述java.sql.SQLException:打开数据库:'DB-NAME.sqlite':权限被拒绝

我已经通过以下指令this链接

它打包但是,this教程是在Windows的NetBeans 7.4原生包装。但是我在Ubuntu中使用了Netbeans8.2中的这个教程(我的系统)。我在上述教程的指定文件夹中获得了.deb文件。

Project-name-1.0.deb文件可以成功安装在我的Ubuntu系统中,但是在运行这个安装的应用程序时它显示错误:“java.sql.SQLException:打开db:'DB-NAME.sqlite':权限被拒绝“

我的项目使用sqlite数据库进行数据存储。我使用JAR sqlite-JDBC-3.19.3.jar作为它的库。

我在Ubuntu中使用了Netbeans IDE 8.2,并在其中创建了新的Java应用程序项目。

现在,我怎么能打包这个Java应用程序项目没有这个权限被拒绝的错误,以获取其对Linux(deb包)安装

化java类Connect.java如下

import java.sql.*; 

import javax.swing.JOptionPane; 

public class Connect { 

    Connection con = null; 
    Statement stmt = null; 

    public static Statement ConnectDB() { 
     try { 
      Connection conn = null; 
      Statement stmt = null; 

      Class.forName("org.sqlite.JDBC"); 
      conn = DriverManager.getConnection("jdbc:sqlite:JavaApp3DB.sqlite"); 

      stmt = conn.createStatement(); 

      return stmt; 
     } catch (Exception e) { 
      JOptionPane.showMessageDialog(null, e); 
     } 
     return null; 
    } 
} 

的应用程序在NetBeans中成功执行而没有任何权限被拒绝错误。但是,它显示了在Ubuntu中安装并执行Packaged(.deb)安装程序时的错误。

+0

@NidhinCB - 如果这实际上是您的问题,并且您已经被锁定在Manu帐户之外,那么您应该前往[Meta](https://meta.stackoverflow.com/)询问您是否可以合并您的帐户。现在看起来您正在将代码添加到其他人的问题中。 – BSMP

更改此jdbc:sqlite:JavaApp3DB.sqlite 这个jdbc:sqlite:JavaApp3DB.db

当你想连接到你的数据库,你需要一个地址,这个地址提到到一个文件中我们称之为database.db.sqlite

+0

花花公子当你想连接到你的数据库你需要一个地址和这个地址提到一个我们称之为database.db的文件不是.sqlite –

+0

不错,谢谢。请相应地编辑您的答案。当你这样做时,它可能会得到满意的结果。它甚至可能被接受为*答案。 – TobiMcNamobi

+0

@ WhiteDruid-我已将它更改为.db。但是,这个错误没有解决。现在它显示“java.sql.SQLException:打开数据库:'DB-NAME.db':权限被拒绝”。它与创建的数据库文件名无关。在NetBeans中安装的用于ubuntu的打包安装程序文件(.deb),安装在ubuntu上时,将在文件夹“/ opt”上创建相应的文件。因此,当安装的应用程序被执行时,它会尝试在“/ opt/...”文件夹中创建“DB-NAME.db”文件,并在该文件中可能会拒绝Permission。但是,如何从NetBeans生成安装程序时解决这个问题。 – Manu