使用eclipse时的java.lang.NullPointerException

使用eclipse时的java.lang.NullPointerException,java,Java,我正在使用gephi实现一个函数,如下所示,但我不知道将“Personal-May8-Anoymous.gml”文件放在哪里,以便eclipse可以“看到”它 您可以查看javadoc()以了解可以放置文件的可能位置,这相当复杂 但是,我们可以将您的文件放在您熟悉的位置,例如C://Users/Personal-May8-Anoymous.gml,从而简化操作。为此,您需要修改: File file = new File(getClass().getResource("Personal-May8

我正在使用gephi实现一个函数,如下所示,但我不知道将“Personal-May8-Anoymous.gml”文件放在哪里,以便eclipse可以“看到”它

您可以查看javadoc()以了解可以放置文件的可能位置,这相当复杂

但是,我们可以将您的文件放在您熟悉的位置,例如C://Users/Personal-May8-Anoymous.gml,从而简化操作。为此,您需要修改:

File file = new File(getClass().getResource("Personal-May8-Anoymous.gml").toURI());


就这么简单。

从外观上看,该文件应该放在源文件夹的根目录中(另一种查看方式是默认包)。如果您使用的是maven,请将文件放在
resources
文件夹的根目录中

以下是项目结构的一个示例:

your_project
- src
  + Personal-May8-Anoymous.gml
  - some.package.here
    + YourClass
删除此行:

File file = new File(getClass().getResource("Personal-May8-Anoymous.gml").toURI());
并对其进行修改:

container = importController.importFile(file);
致:


您不能将文件与类#getResource混合使用,资源可能无法通过文件系统访问如果您需要文件引用,您需要将文件与应用程序的执行上下文关联起来,我认为在Eclipse中,它通常位于项目目录中此代码实际上在我同学的计算机上正确运行,但是为什么我不能用它呢?唯一的问题是我不知道在哪里放置“Personal-May8-Anoymous.gml”是正确的,通常你不想这样做。例如,您的更改将破坏JAR文件。这取决于代码的部署方式。我没有看到OP提到它必须在一般情况下工作。让我们看看OP是怎么说的。我认为最好不要从一个在任何地方都能工作的更通用的解决方案转向一个特定于文件系统和/或位置的解决方案。我不这么认为。我认为最好能想出解决OP问题的最简单的解决方案。我不明白为什么我们使用复杂的解决方案,但实际上并不是必需的。我们可以把问题弄得很复杂,对吗?例如,如果GML文件在另一台计算机中,该怎么办?如果JAR在OSGi环境中运行会怎样?最简单的解决方案是在JAR中维护文件。如果您可以控制将部署的应用程序的环境,则此解决方案看起来更简单,但如果您或其他用户删除文件,或者您无法控制执行此应用程序的环境,则此解决方案会有风险。哦,谢谢!!正如你所说,问题已经解决了@用户3765602不客气。别忘了。
File file = new File(getClass().getResource("Personal-May8-Anoymous.gml").toURI());
container = importController.importFile(file);
container = importController.importFile(getClass().getResource("Personal-May8-Anoymous.gml").toURI());