繁体   English   中英

Java:使用 Derby 设置类路径

[英]Java: Setting up classpath with Derby

显然,这是一个非常普遍的问题,但我只是不了解我在网上找到的任何解决方案。 我在网上能找到的大部分内容似乎都不完整或不相关。

我正在尝试运行“Java for Dummies”第 17 章清单 17-1 中的示例(可以在此处找到,但代码本身不是问题)。

它使用带有以下字符串的 Derby jdbc 驱动程序:

 org.apache.derby.jdbc.EmbeddedDriver
 jdbc:derby:AccountDatabase;create=true

不幸的是,这本书只描述了如何在 Eclipse 中使用它。 我无法让 Eclipse 编译任何东西,所以我正在尝试使用文本编辑器进行编译并通过 bash 进行编译。 javac 不会抛出任何错误,但 java 会抛出错误

java.lang.ClassNotFoundException: org.apache.derby.jdbc.EmbeddedDriver

显然,这很常见,我看到列出了很多使用 -classpath 选项将类路径设置为 Derby.jar 的解决方案(不确定这是用于 javac 还是 java 或两者),但我的运气为零找出其中这个jar文件实际上是。 (如果相关的话,我正在使用 Ubuntu。)

这个页面经常被引用,但是 /usr/local 目录中没有任何带有 jdk 的目录。

我觉得我错过了一些非常基本的东西。

更新:最好复制我在 bash 中实际使用的命令。 这是我正在使用的脚本,部分基于 Bryan Pendleton 在下面写的内容:

javac -cp derbyrun.jar:. CreateTable.java
java -cp derbyrun.jar:. CreateTable

这就是抛出“ClassNotFoundException”的原因。

此外,如果相关,“locate derbyrun”不会返回任何内容。

我终于找到了解决方案,值得注意的是 Bryan 的回答确实有所帮助。

我能够使用 Linux 的 Catfish 搜索程序找到 derby.jar 文件(Caja 的搜索功能找不到它,所以我知道不要再使用它了)。 它位于 /usr/share/java 目录中。 这些是我放在 bash 脚本中的命令,它们没有抛出任何错误并创建了数据库:

javac CreateTable.java
java -cp /usr/share/java/derby.jar:. CreateTable

我猜对于我想共享的程序,我想在 jar 文件中包含 derby.jar。 当我来到它时,我会越过那座桥——现在,我只想知道如何使用类路径。

EmbeddedDriver 位于derby.jar ,因此只需将derby.jar放在您的 CLASSPATH 中。

Derby 有许多 jar,用于各种不同的配置(嵌入式、客户端-服务器、命令行工具、网络服务器等)。 由于记住哪一组 jar 与哪个配置相derbyrun.jar常常令人困惑,因此有一个名为derbyrun.jar的伞形 jar 文件,将derbyrun.jar放入您的 CLASSPATH 中,它将包含所有这些配置的 jar,因此您不会不必不断来回交换您的 CLASSPATH。

有关 Derby 基本方面的替代教程,请尝试: https : //db.apache.org/derby/docs/10.12/getstart/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM