簡體   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