我的CMD命令是創建一個數據巴塞枝條SQLITE3 它的工作,CMD,但與Java它不是 我的JAVA代碼:執行用java一個cmd命令來創建數據巴塞
Runtime.getRuntime().exec("cd /");
Runtime.getRuntime().exec("cd C:\Users...");
Runtime.getRuntime().exec("Sqlite3");
Runtime.getRuntime().exec("Sqlite3 DB.db");
我的CMD命令是創建一個數據巴塞枝條SQLITE3 它的工作,CMD,但與Java它不是 我的JAVA代碼:執行用java一個cmd命令來創建數據巴塞
Runtime.getRuntime().exec("cd /");
Runtime.getRuntime().exec("cd C:\Users...");
Runtime.getRuntime().exec("Sqlite3");
Runtime.getRuntime().exec("Sqlite3 DB.db");
你做錯了。您不需要使用Runtime.exec運行獨立的sqlite應用程序。按照以下方式更好地使用庫。
當你連接到一個不存在的SQLite數據庫時,SQLite會自動創建一個新的數據庫。因此,要創建一個新的數據庫,您只需指定數據庫名稱並連接到該數據庫。
以下程序在文件夾c:\ sqlite \ db中創建一個名爲test.db的新SQLite數據庫。
package net.sqlitetutorial;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.SQLException;
/**
*
* @author sqlitetutorial.net
*/
public class Main {
/**
* Connect to a sample database
*
* @param fileName the database file name
*/
public static void createNewDatabase(String fileName) {
String url = "jdbc:sqlite:C:/sqlite/db/" + fileName;
try (Connection conn = DriverManager.getConnection(url)) {
if (conn != null) {
DatabaseMetaData meta = conn.getMetaData();
System.out.println("The driver name is " + meta.getDriverName());
System.out.println("A new database has been created.");
}
} catch (SQLException e) {
System.out.println(e.getMessage());
}
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws ClassNotFoundException {
// You will probably need to uncomment the following "class.forName"
// and copy dependency configuration to your pom.xml
// if you stumble upon "No suitable driver found" error.
/*
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.7.2</version>
</dependency>
*/
//Class.forName("org.sqlite.JDBC");
createNewDatabase("test.db");
}
}
來源:http://www.sqlitetutorial.net/sqlite-java/create-database/
,但是當我這樣做,並安裝在分區C:\它的應用程序不工作!所以請嘗試使用cmd命令 – HichemJAVA
這樣做它不起作用的確切原因是什麼? Java應用程序拋出任何異常?不正確的路徑,沒有創建或寫入文件的權限? –
這是說我沒有訪問權限,但是當我安裝在分區D:\它的工作 – HichemJAVA
你試圖運行從Java在cmd ..或者是它只是在Java訪問SQL? –
在子流程中執行'cd'是無用的,因爲它的作用對於子流程是本地的,當它結束時你仍然處於原始工作目錄。 – Henry
是的,我試圖從java運行cmd – HichemJAVA