簡體   English   中英

在沒有NetBeans的情況下啟動Java DB服務器

[英]Start Java DB server without NetBeans

我正在創建一個管理數據庫的Java APP。 我一直通過右鍵單擊-啟動服務器來手動啟動JAVA DB服務器。 使用NetBeans,但由於我將不再是無法運行該應用程序的人。 我需要一種無需NetBeans即可啟動的方法。 嵌入式或服務器模式,我並不介意。

我進行了很多搜索,但似乎沒有任何效果。 我試過了: Java DB-在應用程序內啟動服務器

    NetworkServerControl server = new     NetworkServerControl(InetAddress.getLocalHost(),1527);
    server.start(null)    

我得到了java.net.ConnectException:錯誤連接器服務端本地主機localhost en puerto 1527 con el mensaje連接被拒絕:連接。

我也嘗試通過命令行啟動它

    String[] command =
{
    "cmd",
};
Process p = Runtime.getRuntime().exec(command);
new Thread(new SyncPipe(p.getErrorStream(), System.err)).start();
new Thread(new SyncPipe(p.getInputStream(), System.out)).start();
    try (PrintWriter stdin = new PrintWriter(p.getOutputStream())) {
        stdin.println("cd C:\\Program Files\\Java\\jdk1.8.0_31\\db\\lib");
        stdin.println("java -jar derbyrun.jar server start");
    }
int returnCode = p.waitFor();

也被拒絕連接(未找到數據庫Citas),因此它唯一可行的方法是:

    String host = "jdbc:derby://localhost:1527/Citas";
    con = DriverManager.getConnection(host, username, password);    

但是僅當我通過單擊Java DB-> start啟動服務器時,它才有效。 任何幫助將不勝感激

您可以嘗試使用Runtime啟動它嗎?

Runtime runtime = Runtime.getRuntime();
runtime.exec(new String[]{ "java", "-jar", "/path/to/derbyrun.jar", "server", "start");

如果要在自己的線程中執行此操作,則還可以將.waitFor()附加到.exec命令,該命令將掛起,直到進程完成。 這將是確定數據庫是否意外關閉的好方法。

同樣使用運行時,您可以讀取進程的stdout / stderr,並在需要時將其殺死。 可能性是無止境的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM