Java:使用Derby设置类路径

Java:使用Derby设置类路径,java,bash,classpath,derby,Java,Bash,Classpath,Derby,显然,这是一个非常常见的问题,但我只是不理解我在网上找到的任何解决方案。似乎我在网上能找到的大部分东西都是不完整或不相关的 我试图运行“Java for Dummies”第17章清单17-1中的一个示例(可以找到,但代码本身不是问题) 它使用Derby jdbc驱动程序,带有以下字符串: org.apache.derby.jdbc.EmbeddedDriver jdbc:derby:AccountDatabase;create=true 不幸的是,这本书只描述了如何在Eclipse中使用它

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

我试图运行“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选项将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”不返回任何内容。

嵌入式驱动程序位于
derby.jar
中,因此只需将
derby.jar
放在类路径中即可

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


有关Derby基本方面的另一个教程,请尝试:

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

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

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

我猜对于我想要共享的程序,我希望在jar文件中包含derby.jar。现在,我只是想知道如何使用类路径。

好吧,我想我一定是输入了错误的命令。我首先使用“javac CreateTable.java-classpath derbyrun.jar”进行编译,然后使用“java CreateTable-classpath derbyrun.jar”运行。这是我得到ClassNotFoundException的时候。将类路径标志放在要运行的类的名称之前。我相信,要运行的类名称之后的所有内容都将被处理,就像它是类的
main
方法的参数一样,而不是
java
程序本身的参数一样。