显然,这是一个非常常见的问题,但我只是不理解我在网上找到的任何解决方案。似乎我在网上找到的大部分内容都是不完整或不相关的。
我试图从" Java for Dummies中运行一个例子,"第17章,列出17-1(可以找到here,但代码本身不是问题)。
它使用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,如果相关的话。)
经常引用This page,但/ usr / local目录中没有任何带有jdk的目录。
我觉得我错过了一些非常基本的东西。
更新:如果我复制我在bash中实际使用的命令可能是最好的。这是我正在使用的剧本,部分基于Bryan Pendleton在下面写的内容:
javac -cp derbyrun.jar:. CreateTable.java
java -cp derbyrun.jar:. CreateTable
这就是抛出" ClassNotFoundException。"
此外,如果它是相关的,"定位derbyrun"没有回报。
答案 0 :(得分:1)
EmbeddedDriver位于derby.jar
,因此只需将derby.jar
放入CLASSPATH。
Derby有许多罐子,用于各种不同的配置(嵌入式,客户端 - 服务器,命令行工具,网络服务器等)。由于记住哪个罐子与哪个配置一起使用常常令人困惑,因此有一个名为derbyrun.jar
的伞状文件,将derbyrun.jar
放入CLASSPATH,它将包含所有这些配置的罐子,所以你不必来回交换你的CLASSPATH。
有关Derby基本方面的替代教程,请尝试:https://db.apache.org/derby/docs/10.12/getstart/
答案 1 :(得分:1)
我终于能够找到解决方案,值得注意的是,布莱恩的回答确实有所帮助。
我能够使用Linux的Catfish搜索程序找到derby.jar文件(Caja的搜索功能无法找到它,所以我知道不再使用它了)。它位于/ usr / share / java目录中。这些是我在bash脚本中放入的命令,它没有抛出任何错误并创建了数据库:
javac CreateTable.java
java -cp /usr/share/java/derby.jar:. CreateTable
我猜测对于我想要分享的程序,我想在jar文件中包含derby.jar。当我来到它时,我将穿过那座桥 - 现在,我只是想知道如何使用类路径。