【问题标题】:Start Java DB server without NetBeans在没有 NetBeans 的情况下启动 Java DB 服务器
【发布时间】:2015-08-11 17:49:25
【问题描述】:

我正在创建一个管理数据库的 Java APP。我一直通过右键单击手动启动 JAVA DB 服务器 - 启动服务器。使用 NetBeans,但因为我不会成为运行无法再完成的应用程序的人。我需要一种在没有 NetBeans 的情况下启动它的方法。嵌入式或服务器模式,我真的不介意。

我搜索了很多,但似乎没有任何效果。 我试过这个:Java DB - Starting Server within application

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

我得到 java.net.ConnectException: Error al conectarse al servidor localhost en el puerto 1527 con el mensaje Connection denied: connect.

我也试过用命令行启动它

    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 -> 启动来启动服务器时才有效。 任何帮助将不胜感激

【问题讨论】:

    标签: java netbeans derby javadb


    【解决方案1】:

    您可以尝试使用Runtime 启动它吗?

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

    如果您要在其自己的线程中执行此操作,您还可以将.waitFor() 附加到.exec 命令,该命令将挂起直到进程完成。这将有助于确定数据库是否意外关闭。

    同样使用运行时,您可以读取进程的标准输出/标准错误,并在需要时将其终止。无限可能。

    【讨论】:

    • 我得到:Se ha rechazado la conxión porque no se ha encontrado la base de datos Citas。用英语它会是这样的:连接被拒绝,因为找不到数据库 Citas。这与我使用 Windows 命令行所做的非常相似。我会编辑我的问题给你看。
    • "database Citas not found" 很容易修复。由于您的连接 URL 指定了一个简单的数据库名称,因此 Derby 正在查找您启动网络服务器的位置。您可以在连接 URL 中指定 DB 的绝对位置,或者在启动网络服务器时指定 derby.system.home。如果数据库确实不存在,请指定“create=true”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-07
    • 1970-01-01
    • 2013-03-07
    • 2013-07-24
    • 2016-06-27
    • 2016-03-10
    • 1970-01-01
    相关资源
    最近更新 更多