Java 在`$objectdb`主目录外以嵌入式服务器模式使用数据库

Java 在`$objectdb`主目录外以嵌入式服务器模式使用数据库,java,database,objectdb,Java,Database,Objectdb,我正在尝试设置ObjectDB。我可以创建一个数据库并使用浏览器查看它,使用嵌入式服务器模式可以在运行我的程序时保持浏览器打开。当我的数据库位于$objectdb/db/目录中时,这一切都可以正常工作 但是,当我的数据库位于另一个目录(因此不在$objectdb/db/中)时,我希望能够做到这一点。当我不使用资源管理器时,数据库看起来很好。我还可以打开资源管理器查看数据库。但是在运行我的程序(从而对数据库进行更改)时,我无法在资源管理器中保持与数据库的连接处于打开状态 我试过/一直在想的是:

我正在尝试设置ObjectDB。我可以创建一个数据库并使用浏览器查看它,使用嵌入式服务器模式可以在运行我的程序时保持浏览器打开。当我的数据库位于
$objectdb/db/
目录中时,这一切都可以正常工作

但是,当我的数据库位于另一个目录(因此不在
$objectdb/db/
中)时,我希望能够做到这一点。当我不使用资源管理器时,数据库看起来很好。我还可以打开资源管理器查看数据库。但是在运行我的程序(从而对数据库进行更改)时,我无法在资源管理器中保持与数据库的连接处于打开状态

我试过/一直在想的是:

  • 数据库和资源管理器必须使用相同的.conf文件。我认为资源管理器使用
    $objectdb
    主目录中的conf文件,但我不知道如何在另一个目录中配置我的数据库来监听该conf文件。如何为不在
    $objectdb
    主目录中的数据库创建特定于项目(或数据库)的conf文件?
    总的来说,我觉得奇怪的是,所有ObjectDB数据库都有一个conf文件

  • 我将
    explorer.exe
    objectdb.conf
    复制到我的数据库所在的目录中,希望这能起作用。但是,当我尝试运行exe文件时,什么也没有发生。我认为这是因为exe(以及
    explorer.jar
    ,也尝试了这个)依赖于
    objectdb.jar
    ,但我在任何地方都找不到。我找到了
    objectdb-2.7.1_01.jar
    ,并将其复制到数据库和资源管理器所在的目录中,但这没有帮助

至于MWE,我遵循教程,使用IntelliJ。

尝试以下方法:

  • 以嵌入式模式打开数据库,路径指定嵌入式服务器的可用端口,例如“$objectdb/db/my.odb;port=9999”
  • 使用“在客户端模式下访问此数据库”objectdb://localhost:9999,或在资源管理器中,选择文件->打开C/S连接,指定9999作为端口,并保持数据库路径为空或为空/
  • objectdb.jar在您将objectdb作为zip文件下载(您也可以在其中找到资源管理器)时可用,您还可以从Maven中将该文件重命名为objectdb.jar,该文件包含一个版本号。

    请尝试以下操作:

  • 以嵌入式模式打开数据库,路径指定嵌入式服务器的可用端口,例如“$objectdb/db/my.odb;port=9999”
  • 使用“在客户端模式下访问此数据库”objectdb://localhost:9999,或在资源管理器中,选择文件->打开C/S连接,指定9999作为端口,并保持数据库路径为空或为空/

  • objectdb.jar在您将objectdb作为zip文件下载时可用(您也可以在其中找到资源管理器),您还可以从Maven重命名该文件,该文件包含一个版本号为objectdb.jar。

    但是我仍然会将数据库存储在
    $objectdb/db
    目录中,对吗?问题不是当数据库存储在
    $objectdb/db/
    目录中时,我无法使用资源管理器访问数据库,而是当数据库未存储在该目录中时,我无法访问数据库。有什么提示吗?它可以是任何路径,例如“C:\\db\\my.odb;port=9999”,只需指定一个端口即可。嵌入式服务器将开始侦听端口9999,您可以从其他进程(包括使用url的资源管理器)访问数据库”objectdb://localhost:9999“我想我明白了。但我得到一个错误,它无法连接到服务器localhost:9999。在“打开远程数据库”对话框中,我将用户名和密码字段保持为空,主机:“localhost”,端口:“9999”,并将数据库也保持为空。我的代码中的数据库路径是
    C:\\…\\points.odb;端口=9999
    。我遗漏了什么吗?请检查是否在正确的配置文件中启用了嵌入式服务器,即打开数据库的应用程序使用的conf文件。是的,我已经在谷歌上搜索了一段时间(在问这个问题之前)如何为特定的应用程序/项目设置配置文件,但找不到任何内容。我在
    $objectdb
    主目录中只有一个conf文件。对于不在该目录中的数据库,这是有道理的。我试图将该conf文件复制到我的应用程序的src文件夹中,但没有成功。但是我仍然将数据库存储在
    $objectdb/db
    目录中,对吗?问题不是当数据库存储在
    $objectdb/db/
    目录中时,我无法使用资源管理器访问数据库,而是当数据库未存储在该目录中时,我无法访问数据库。有什么提示吗?它可以是任何路径,例如“C:\\db\\my.odb;port=9999”,只需指定一个端口即可。嵌入式服务器将开始侦听端口9999,您可以从其他进程(包括使用url的资源管理器)访问数据库”objectdb://localhost:9999“我想我明白了。但我得到一个错误,它无法连接到服务器localhost:9999。在“打开远程数据库”对话框中,我将用户名和密码字段保持为空,主机:“localhost”,端口:“9999”,并将数据库也保持为空。我的代码中的数据库路径是
    C:\\…\\points.odb;端口=9999
    。我遗漏了什么吗?请检查是否在正确的配置文件中启用了嵌入式服务器,即打开数据库的应用程序使用的conf文件。是的,我已经在谷歌上搜索了一段时间(在问这个问题之前)如何为特定的应用程序/项目设置配置文件,但找不到任何内容。我在
    $objectdb
    主目录中只有一个conf文件。对于不在该目录中的数据库,这是有道理的。我试图将conf文件复制到我的应用程序的src文件夹中,但是