当前位置: 首页 > 知识库问答 >
问题:

从可运行的Jar访问文件[重复]

欧阳炜
2023-03-14
Desktop -->
   workspace -->
      QuizProgram -->
                  bin
                  src
                  Questions.txt
                  right.png

我通过以下方式访问图像和文本文件:

BufferedReader br =  new BufferedReader(new FileReader("Questions.txt"));

BufferedImage right = ImageIO.read(new File("Right.png"));

如果有人能请我给我一步一步的解释,在哪里移动我的文件/更改我的代码,我将非常感谢。我看了很多其他线程,类路径/类加载器真的让我感到困惑。我试过一些

this.getClass().getResource("File.txt");

东西也有,但似乎都没有用。请帮忙,我有一个完成的程序和这最后一件事真的很沮丧,谢谢!

编辑1:所以我尝试了user2933977的建议,并将getResource更改为getResourceStream,结果一切都运行得很好!非常感谢用户2933977对您的帮助。

旁注:是的,是的,我知道这是一个重复的,但我认为你如何措辞一个问题和互动的回答,无论如何,帮助很多。别紧张,我已经开始工作了。

共有1个答案

索锐藻
2023-03-14

您没有显示足够的代码,但是要使用getResource(),您的文件需要与.class文件所在的目录相同。例如,您可能有类似于以下内容的内容:

Desktop -->
  workspace -->
    QuizProgram -->
      bin -->
        QuizProgram -->
          YourClass.class
      src -->
        QuizProgram -->
          YourClass.java 
      Questions.txt
      right.png

我在这里猜测了一下,但这是Eclipse中默认的“Java项目”。因此,将您的questions.txt移动到与您的.java文件相同的目录中,Eclipse将为您将其移动到classes目录中:

Desktop -->
  workspace -->
    QuizProgram -->
      bin -->
        QuizProgram -->
          YourClass.class
          Questions.txt <--- Eclipse moves this for you
      src -->
        QuizProgram -->
          YourClass.java 
          Questions.txt
      right.png

并且您将能够在编写getResource()方法时使用它。

 类似资料:
  • 当我导出到可运行的jar时,我需要从我的jar中访问属性文件,所以当我将props文件放在eclipse的项目根文件夹中时,它正在运行,但是当导出时,它不会被复制,所以我想将它放在源文件夹中。如何从源文件夹访问它。

  • 我尝试将一个具有不同库的Java项目导出到一个可运行的JAR文件中,其中包括一个JavaFX GUI和许多不同的东西。当我在eclipse中运行我的项目时,没有问题。但是,当我试图将它导出到一个可运行的JAR文件,然后我尝试启动时,它从来没有打开一个窗口,只有一个进程在后台运行。 我不知道如何更好地描述我的问题。但也许你已经可以帮我了解这些信息了。 (使用eclipse)

  • 我正在尝试将我的checkers程序从Eclipse导出到一个可运行的jar文件中。我得到一个jar文件,但它不运行。。。它给了我关于未找到的类的神秘错误消息。jar文件的意义不在于它包含了它所需要的所有类吗?我不知道现在该做什么。 这是我运行罐子时得到的: 知道是的一个内部类可能会有所帮助?有什么问题吗?我在导出向导中尝试了“提取所需库”和“打包所需库”。 我还尝试从命令行使用,但效果不太好。以

  • 我有一个java项目。我想把它导出到可运行的jar文件。 我用eclipse来做这件事。 但当我运行创建的jar文件时,我会收到(系统找不到指定的路径)。 如何在任何地方导出文件夹以运行success jar文件?

  • 问题内容: 搜寻了几个小时后,就开始对此完全取笑。我还在网站上看到了该问题的各种变体,但似乎无法使其正常工作。JFrame需要从ini文件中读取数据,并且我已经创建了一种打开该文件的方法。所述文件存储在jar文件内称为资源的文件夹中。 当我在编译后运行代码时,这当然可以完美地工作,但是在导出到.jar文件后会引发异常。我已经研究过使用InputStream,FileInputStream,但似乎找