2016-06-10 57 views
1

我正面临以下问题。 试图让德比DB以嵌入模式工作在我的MacBook,但得到以下错误:在嵌入式模式下在OS X上运行Derby出现问题

值java.sql.SQLException:找到了JDBC没有合适的驱动程序:德比

Derby log shows : 
java.vendor=Oracle Corporation 
java.runtime.version=1.8.0_65-b17 
user.dir=/Users/a1/Documents/ 
os.name=Mac OS X 
os.arch=x86_64 
os.version=10.9.4 
derby.system.home=null 
Database Class Loader started - derby.database.classpath='' 

好像与环境麻烦变量,在我的终端上运行setEmbeddedCP时得到如下结果:

Error: DERBY_HOME is not set. Please set the DERBY_HOME environment variable 
to the location of your Derby installation. 

以下是.bash_profile中的内容

export JAVA_HOME=$(/usr/libexec/java_home) 
export DERBY_HOME=$(/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home/db) 

任何想法? 谢谢

回答

0

DERBY_HOME应设置为您下载并解压缩Derby jar文件的位置。也就是说,$DERBY_HOME/lib/derby.jar应该是您的derby.jar文件的位置。

下面是一些文档:https://db.apache.org/derby/docs/10.12/getstart/tgssetupenvironment.html

您的实际的数据库可以位于任何地方;他们不必位于DERBY_HOME(通常是位于那里的而不是)。通常,数据库位于作为应用程序数据文件一部分的文件夹中(这称为“嵌入式”配置),或位于由Derby Network Server管理的文件夹中(这称为“客户端/服务器“配置)。

我建议通过整个德比介绍指南:https://db.apache.org/derby/docs/10.12/getstart/index.html

+0

谢谢,已经试过了。在我的bash_profile export DERBY_HOME = $/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home/db/lib/derby.jar。 来自终端的回声: /Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home/db/lib/derby.jar 所以现在它应该是正确的,但仍然在Eclipse中得到相同的错误 java.sql .SQLException:找不到适合jdbc:derby的驱动程序:... 我没有明确下载Derby并解压缩Derby jar文件,它们与JDK捆绑在一起。它们确实存在于上面的文件夹中。 Onlinedoc只是约env。变量为Win。/UNIX,没有OS X – fg78nc

+0

OS X与Unix相同。但是,我不知道你在谈论Eclipse。这有很大的不同。 Eclipse有自己的加载和运行JDBC驱动程序的方式,它不会查看'DERBY_HOME'环境变量;这些仅由Derby提供的shell脚本使用。 –

+0

是的,遗憾的是eclipse中的java应用程序无法连接到服务器。 或者当我尝试加载 'Class.forName(“org.apache.derby.jdbc.EmbeddedDriver”);' 获取'java.lang.ClassNotFoundException:org.apache.derby.jdbc.EmbeddedDriver' – fg78nc