Java 找不到指定的文件?
我得到了一个非常恼人的错误,代码是好的,但它找不到文件Java 找不到指定的文件?,java,opengl,3d,shader,Java,Opengl,3d,Shader,我得到了一个非常恼人的错误,代码是好的,但它找不到文件 Output: .\res\shadersbasicVertex.vs (The system cannot find the file specified) <-- yes it does actually say '\shadersbasicVertex.vs' 我正在使用的库:lwjgl at java.io.FileInputStream.open(Native Method) at java.io.FileInputStr
Output:
.\res\shadersbasicVertex.vs (The system cannot find the file specified) <-- yes it does actually say '\shadersbasicVertex.vs'
我正在使用的库:lwjgl
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileReader.<init>(Unknown Source)
at com.base.engine.ResourceLoader.loadShader(ResourceLoader.java:15)
at com.base.engine.Game.<init>(Game.java:20)
at com.base.engine.MainComponent.<init>(MainComponent.java:20)
at com.base.engine.MainComponent.main(MainComponent.java:124)
java.io.FileInputStream.open上的(本机方法)
位于java.io.FileInputStream。(未知源)
位于java.io.FileInputStream。(未知源)
位于java.io.FileReader。(未知源)
位于com.base.engine.ResourceLoader.loadShader(ResourceLoader.java:15)
在com.base.engine.Game.(Game.java:20)
位于com.base.engine.MainComponent(MainComponent.java:20)
位于com.base.engine.MainComponent.main(MainComponent.java:124)
我的着色器文件夹位于:
C:\Users\Badfitz66\workspace\Rain\Game engine\res\shaders是的,大概
文件名是“basicVertex.vs”
。将其放在“/res/shaders”
的末尾,您将得到\res\shadersbasicVertex.vs
。您需要额外的斜杠:
shaderReader = new BufferedReader(new FileReader("./res/shaders/" + fileName));
或者您可以使用文件API解析路径:
File file = new File(new File("res", "shaders"), fileName);
shaderReader = new BufferedReader(new FileReader(file));
或者更好:
shaderReader = Files.newBufferedReader(Paths.get("res", "shaders", fileName));
请注意:
- 这与OpenGL或任何3d无关-您只是在打开一个文件
FileReader
始终使用平台默认编码;我建议使用一种允许您指定编码的方法——上一个示例是这样做的,但默认为UTF-8
是的,大概文件名是“basicVertex.vs”
。将其放在“/res/shaders”
的末尾,您将得到\res\shadersbasicVertex.vs
。您需要额外的斜杠:
shaderReader = new BufferedReader(new FileReader("./res/shaders/" + fileName));
或者您可以使用文件API解析路径:
File file = new File(new File("res", "shaders"), fileName);
shaderReader = new BufferedReader(new FileReader(file));
或者更好:
shaderReader = Files.newBufferedReader(Paths.get("res", "shaders", fileName));
请注意:
- 这与OpenGL或任何3d无关-您只是在打开一个文件
FileReader
始终使用平台默认编码;我建议使用一种允许您指定编码的方法——上一个示例是这样做的,但默认为UTF-8
是的,大概文件名是“basicVertex.vs”
。将其放在“/res/shaders”
的末尾,您将得到\res\shadersbasicVertex.vs
。您需要额外的斜杠:
shaderReader = new BufferedReader(new FileReader("./res/shaders/" + fileName));
或者您可以使用文件API解析路径:
File file = new File(new File("res", "shaders"), fileName);
shaderReader = new BufferedReader(new FileReader(file));
或者更好:
shaderReader = Files.newBufferedReader(Paths.get("res", "shaders", fileName));
请注意:
- 这与OpenGL或任何3d无关-您只是在打开一个文件
FileReader
始终使用平台默认编码;我建议使用一种允许您指定编码的方法——上一个示例是这样做的,但默认为UTF-8
是的,大概文件名是“basicVertex.vs”
。将其放在“/res/shaders”
的末尾,您将得到\res\shadersbasicVertex.vs
。您需要额外的斜杠:
shaderReader = new BufferedReader(new FileReader("./res/shaders/" + fileName));
或者您可以使用文件API解析路径:
File file = new File(new File("res", "shaders"), fileName);
shaderReader = new BufferedReader(new FileReader(file));
或者更好:
shaderReader = Files.newBufferedReader(Paths.get("res", "shaders", fileName));
请注意:
- 这与OpenGL或任何3d无关-您只是在打开一个文件
FileReader
始终使用平台默认编码;我建议使用一种允许您指定编码的方法——上一个示例是这样做的,但默认为UTF-8