您好我创建了一个带有简单Java应用程序的derby嵌入式数据库。 当在eclipse上运行测试时,它运行得很完美。然后我导出为可运行的jar文件。通过cmd运行 没有找到异常数据库.. !!!
public class Main {
public static void main(String[] args) throws SQLException {
final String driver="org.apache.derby.jdbc.EmbeddedDriver";
final String url="jdbc:derby:db/testdb";
try {
Class.forName(driver);
Connection connection=DriverManager.getConnection(url);
//connection.createStatement().execute("create table channels(channel varchar(20),topic varchar(20))");
// connection.createStatement().execute("insert into channels (channel,topic) values('hbo','action')");
// System.out.println("saved");
PreparedStatement preStmt=connection.prepareStatement("select * from channels");
ResultSet set=null;
set=preStmt.executeQuery();
while(set.next()){
System.out.print(set.getString(1));
System.out.println(set.getString(2));
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
错误
Exception in thread "main" SQL Exception: Database 'db/testdb' not found.
at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Sourc
我需要的是,当我在其他启用java的PC上运行jar文件时,它必须运行.. !!! 我已经尝试过在其他电脑上它给了我同样的错误..! 我怎样才能创建数据库.... !! 有人知道请帮忙..!
答案 0 :(得分:0)
构建jar后,转到项目文件夹并复制dist
文件夹。将其移动到新位置,并将数据库文件夹复制到刚刚移动的新dist
文件夹中。应该这样做;大多数时候,当人们遇到Derby问题时,这是因为Java文件路径。
答案 1 :(得分:0)
关于Derby模式创建的神奇之处在于jdbc url本身。
让我用Java 8 Derby来详细说明。运行 cmd 。
添加与环境路径相关的Derby:
cd D:\Project\derbydb
set JAVA_HOME=C:/Program Files/Java/jdk1.8.0_92
set DERBY_HOME=C:/Program Files/Java/jdk1.8.0_92/db
set PATH=%PATH%;%DERBY_HOME%/bin
执行 ij 命令以使用Derby。
D:\Project\derbydb>ij
ij version 10.11
ij> CONNECT 'jdbc:derby:testdb;create=true';
当 url =" jdbc:derby:testdb; create = true" 时,[D:\ Project \ derbydb \ testdb]文件夹会自动从其运行位置初始化。然后,我们可以像任何其他数据库一样使用Derby。
ij> CREATE TABLE cart (
item VARCHAR(50),
price DECIMAL (10,5),
dt TIMESTAMP,
primary key (item)
);
ij> select * from cart;
Derby存储库存在后,我们可以从任何地方连接它。
C:\Users\oraclesoon>ij
ij version 10.11
ij> CONNECT 'jdbc:derby:D:\\Project\\derbydb\\testdb';
ij> select * from cart;