Java.nio.file.NoSuchFileException 在 docker 容器内
Java.nio.file.NoSuchFileException within docker container
我创建了一个创建文件的应用程序。该应用程序在 intellij 中工作,当我将其导出为 jar 文件时。但是,当我从中创建 & 运行 一个 docker 容器时,我得到一个 Java.nio.file.NoSuchFileException.
这是我的 docker 文件:
FROM openjdk:8-jdk-alpine
ADD ./initializr.jar initializr.jar
EXPOSE 8089
ENTRYPOINT ["java", "-jar", "initializr.jar"]
这是我正在使用的目录
private final String path = System.getProperty("user.dir") + "\generatedFiles\";
通常它会创建 generatedFiles 文件夹,如果它丢失所以我猜 Systen.getProperty 不起作用?
您可以进入 docker 容器并检查您要查找的文件夹是否存在。你可以通过 docker exec -it container_name /bin/bash
来完成。
另外我认为使用 File.separator
的 fs 分隔符更好。
Unix 使用“/”作为路径分隔符,尝试使用
private final String path = System.getProperty("user.dir") + File.separator + "generatedFiles" + File.separator;
我创建了一个创建文件的应用程序。该应用程序在 intellij 中工作,当我将其导出为 jar 文件时。但是,当我从中创建 & 运行 一个 docker 容器时,我得到一个 Java.nio.file.NoSuchFileException.
这是我的 docker 文件:
FROM openjdk:8-jdk-alpine
ADD ./initializr.jar initializr.jar
EXPOSE 8089
ENTRYPOINT ["java", "-jar", "initializr.jar"]
这是我正在使用的目录
private final String path = System.getProperty("user.dir") + "\generatedFiles\";
通常它会创建 generatedFiles 文件夹,如果它丢失所以我猜 Systen.getProperty 不起作用?
您可以进入 docker 容器并检查您要查找的文件夹是否存在。你可以通过 docker exec -it container_name /bin/bash
来完成。
另外我认为使用 File.separator
的 fs 分隔符更好。
Unix 使用“/”作为路径分隔符,尝试使用
private final String path = System.getProperty("user.dir") + File.separator + "generatedFiles" + File.separator;