java - apache Derby - 创建新数据库时获取 java.io.FileNotFoundException : derby. 日志(访问被拒绝)

标签 java jdbc derby

我是 Apache Derby 数据库的新手,

当我尝试使用以下命令创建新数据库时,我遇到了以下问题

C:\>java org.apache.derby.tools.ij
ij version 10.10
ij> connect 'jdbc:derby:Mynewdb;create=true';
Mon Mar 03 20:17:32 IST 2014 Thread[main,5,main] java.io.FileNotFoundException: derby.log
(Access is denied)
----------------------------------------------------------------
Mon Mar 03 20:17:33 IST 2014:
Booting Derby version The Apache Software Foundation - Apache Derby - 10.10.1.1 - (1458268): instance a816c00e-0144-886a-02f2-000000b8d0b0
on database directory C:\Mynewdb with class loader sun.misc.Launcher$AppClassLoader@11b86e7
Loaded from file:/C:/db-derby-10.10.1.1-bin/db-derby-10.10.1.1-bin/lib/derby.jar
java.vendor=Sun Microsystems Inc.
java.runtime.version=1.6.0_23-b05
user.dir=C:\
os.name=Windows 7
os.arch=x86
os.version=6.1
derby.system.home=null
Database Class Loader started - derby.database.classpath=''

最佳答案

当您运行 ij(或尝试在其他应用程序中使用嵌入式 Apache Derby)时,将在当前工作目录中创建一个名为 derby.log 的文件。从帖子来看,您似乎是从 C:\ 执行此操作,而您登录的用户没有对该目录的写入权限:更改为用户具有权限的目录创建文件并重试。

请注意,可以禁止此日志文件(尽管我自己还没有这样做)。参见 Getting rid of derby.log .但是,抑制日志文件只会导致您的情况再次失败,因为数据库将在相对于当前目录的文件系统上创建。也就是说,尝试在当前目录 C:\ 中创建名为 Mynewdb 的目录也会因同样的原因而失败。可以指定数据库的路径以避免在当前工作目录中创建:

ij> connect 'jdbc:derby:/tmp/test_db;create=true';

关于java - apache Derby - 创建新数据库时获取 java.io.FileNotFoundException : derby. 日志(访问被拒绝),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22149962/

相关文章:

postgresql - Spring Boot postgres 无法确定合适的驱动程序类

java - Apache Derby 插入速度很慢

SQL表主键设置

jsp - JDBC Derby DriverManager.getConnection() 导致 SQLNonTransientConnectionException

java - 是否可以在处理中返回 "text()"?

java - 仅第一个对象在 JFrame 上可见

java - 如何配置嵌入式 Jetty (v9) 为特定资源文件设置特定 header ?

java - Groovy 项目不会在 GGTS 中构建

java - 在tomcat 7中获取空指针异常@Resource注解

java - 在 mac os 中使用 netbeans 设置 phpmyadmin