【发布时间】:2020-04-21 02:59:32
【问题描述】:
我正在使用 Java Oracle NoSQL 数据库服务器 - com.sleepycat.je
<dependency>
<groupId>com.sleepycat</groupId>
<artifactId>je</artifactId>
<version>18.3.12</version>
</dependency>
我尝试获取 Berkely DB 内容 - Centos8 docker 映像中的 RPM Packages DB
import com.sleepycat.je.DatabaseException;
import com.sleepycat.je.Environment;
import com.sleepycat.je.EnvironmentConfig;
import java.io.File;
public class TempMain {
public static void main(String[] args) {
Environment myDbEnvironment = null;
try {
// Open the environment, creating one if it does not exist
EnvironmentConfig envConfig = new EnvironmentConfig();
envConfig.setAllowCreate(true);
myDbEnvironment = new Environment(new File("C:\\Centos8\\LayerId\\var\\lib\\rpm\\Packages"),
envConfig);
} catch (DatabaseException dbe) {
// Exception handling
}
}
}
但我收到以下错误:
Exception in thread "main" java.lang.IllegalArgumentException: Malformed \uxxxx encoding.
at java.util.Properties.loadConvert(Properties.java:574)
at java.util.Properties.load0(Properties.java:391)
at java.util.Properties.load(Properties.java:341)
at com.sleepycat.je.dbi.DbConfigManager.applyFileConfig(DbConfigManager.java:449)
at com.sleepycat.je.Environment.setupHandleConfig(Environment.java:313)
at com.sleepycat.je.Environment.<init>(Environment.java:250)
at com.sleepycat.je.Environment.<init>(Environment.java:228)
【问题讨论】:
-
C:\\Centos8是 CentOS 的有效路径吗? -
我在本地机器上保存了docker镜像并解压,然后尝试在centos8第一层存在的var/lib/rpm/Packages文件上运行这段代码
-
但是您在哪里运行 Java 可执行文件?在 Docker 内部还是在 Windows 中?
-
Packages是实际的 Berkeley DB 数据库文件,还是只是包含 RPM 包的目录? -
我将 Centos:8 docker 镜像保存到本地计算机窗口并解压。我在第一层文件夹内的“var/lib/rpm/”路径中找到了“Packages”文件。我正在尝试使用上面的 Java 获取其内容。
标签: java docker berkeley-db dnf centos8