【问题标题】:System cannot find the file specified [closed]系统找不到指定的文件[关闭]
【发布时间】:2013-07-16 06:05:52
【问题描述】:

我有一个 jar 文件中的程序,其中几个 csv 文件位于 jar 文件的根目录中。我将文件导入程序的代码如下所示:

public static final String STRINGFILE = "file.csv";

错误提示“file.csv(系统找不到指定的文件)”。我想知道如果文件位于 jar 的根目录中,为什么这不起作用,我需要做一些特殊的事情来访问它们,还是只是不可能,我仍然需要有通往的路径文件?

谢谢!

【问题讨论】:

  • 那不是导入文件的代码。这只是一个定义文件名的String 常量。
  • 您的代码只是声明了一个常量。如果您不介意向我们展示您的一些实际代码,我们可能会给出答案....
  • 完整的代码并不重要,我的意思是当我把它写成 String STRINGFILE = "src/main/resources/file.csv" 时它可以工作,我只是想知道为什么它会'当我不包含路径时'不是
  • @user22 “完整的代码无关紧要”——你认为我们是魔术师吗?如果您在两个人要求您展示代码后拒绝展示您的代码,我们为什么要帮助您?
  • @user22,根据你的评论,你正在做new File(STRINGFILE)src/main/resources/file.csv 表示一个 maven 项目,并且您从 Eclipse 或 maven 运行。 @fish 和 @GyroGearless 都是正确的,在您尝试打开文件的位置使用实际代码会减少读心方面。

标签: java file-io jar


【解决方案1】:

您的示例(如果我推断您正在执行 new File(STRINGFILE))将在运行 java 文件的同一目录中的文件系统上查找文件,而不是搜索类路径。

您想要ClassLoader.getResource()ClassLoader.getResourceAsStream()

您可以通过发出 this.getClass().getClassLoader() 之类的内容来获取 ClassLoader

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-24
    • 1970-01-01
    • 2013-11-21
    • 2023-03-17
    • 2017-12-21
    • 2015-09-28
    • 2015-11-08
    相关资源
    最近更新 更多