gpt4 book ai didi

java - Eclipse 从不同项目加载文件

转载 作者:太空宇宙 更新时间:2023-11-04 12:17:24 26 4
gpt4 key购买 nike

为了使启动新项目更加容易,我将我经常使用的几个类“分解”到 Eclipse 中的一个单独的项目中。我将这个项目称为“一体化”。它包含我经常重用的各种抽象类和 OpenGL 相关方法。

(All-In-One 包含在构建路径中)

我遇到的问题是另一个项目,我将其称为测试项目。我在测试项目中创建了 SimpleShader 类的实例(引用 All-In-One ),但在运行时,它搜索 default.vert 但没有找到它(java.io.FileNotFoundException)

我猜这与父项目不了解 shdr 文件夹及其内容有关;或者看到该类是在测试项目中“创建”的,它不会在 All-In-One 的 src 文件夹中查找。我尝试将文件夹链接到测试项目中的 shdr 文件夹,但没有任何变化。

All-In-One Project
src/
SimpleShader.java
shdr/
default.vert
.... other files
Test Project
src/
Here would be the main file that creates an instance of
SimpleShader, which then looks for default.vert (but can't find it)

我用这个加载文件

String filename = "shdr/default.vert"; // It's actualy passed via a parameter, but this works.
FileInputStream in = new FileInputStream(filename); // Boom java.io.FileNotFoundException:

在为所有主要事情创建一个单独的项目之前,这工作得很好。我希望这只是一些我不知道或不理解的简单事情。

提前致谢。

最佳答案

当您将项目放在构建路径上时,您无法直接从文件系统访问它们的文件。引用的项目将构建为 jar 文件,生成的 jar 将放在构建路径中。因此,您必须加载您正在从类路径中查找的资源,例如 InputStream 流 = TestShader.class.getResourceAsStream("path/to/resouce");

有关详细信息,请参阅 Class.getResourceAsStream() 的 Api-Doc。

关于java - Eclipse 从不同项目加载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39243365/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com