java - 如何使(JAR)文件能够访问应用程序所需的外部文件夹?

标签 java file-io jar

拜托,我的 Java 应用程序应该访问包含一些其他文件的外部文件夹。它在 Netbeans IDE 下运行得很好,但当我单独运行 (jar) 文件时则不然。我认为将外部所需文件夹包含在与 jar 文件相同的路径中将解决问题,但遗憾的是它给了我相同的结果。

非常感谢任何想法或建议!

提前致谢!

P.S:我使用以下命令:java -jar MyJarFile.jar

[已添加]

我的文件结构:

在项目的主文件夹中,我有以下内容:

构建
构建.xml
数据:此文件夹内是我的日志文件(log.dat)。
dist:此文件夹内是我的 (.Jar) 文件。
list .mf
nb项目
自述文件
源代码

访问文件的代码编写如下:

文件logs_File = new File("Data"+ File.separator + "log.dat");

在我的笔记本中,它再次以这种方式工作,但当我午餐 .Jar 文件时却没有。

[已更新]

据了解,我一直在尝试以下操作:

访问该文件的文件现在如下所示: 文件logs_File = new File(this.getClass().getResource("/Data/log.dat").toString());

然后我将 Data 文件夹复制到以下目录:
源代码
构建/类/
距离

并在主目录

但它仍然没有看到该文件。尽管这次连 netbeans 都无法找到该文件。

预先感谢您的帮助

最佳答案

在没有看到您的代码的情况下,别人很难为您的问题提供准确的答案。您在 IDE 中提供的有关正确行为的提示表明您在访问文件时可能使用相对路径?您是否尝试过在失败时打印出您尝试访问的路径?

编辑:

尝试在文件上调用 getAbsolutePath(),并将结果打印到 STDOUT。然后去查看您的文件系统以查看该文件是否存在。

关于java - 如何使(JAR)文件能够访问应用程序所需的外部文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4672150/

相关文章:

java - 在工件对话框中找不到 "Create Manifest"按钮

java - 我应该如何 `java -jar a.jar` ,然后退出java但保留jar

java - 如何仅将选定文件夹内的内容添加到 jar 中

java - 用 Java Applet 制作一条蛇

java - 使用集合序列化 java 对象

java - 程序打印对于圆柱体面积、体积、范围+继承java保持打印0.0

C 中的命令行参数和 ftruncate

java - 使用 JMeter 测试套接字

java - 变量可能还没有初始化?

c++ - 无法输出我写入文件的内容