Ошибка загрузки шейдеров после экспорта в .jar
GitHub с этим движком (может поможет в решении проблемы).
Код, в котором проиходит загрузка шейдеров:
package org.kit.engine.shader;
import lombok.SneakyThrows;
import lombok.experimental.UtilityClass;
import lombok.val;
import java.nio.file.Files;
import java.nio.file.Paths;
@UtilityClass public class ShaderFactory {
public ShaderProgram create(String vertexFile, String fragmentFile) {
return new ShaderProgram(
new VertexShader(readFile(vertexFile)),
new FragmentShader(readFile(fragmentFile)));
}
@SneakyThrows private String readFile(String file) {
val uri = ShaderFactory.class.getResource(file).toURI();
System.out.println(uri);
return Files.readString(Paths.get(uri));
}
}
Ошибка:
Exception in thread "main" java.nio.file.FileSystemNotFoundException
at jdk.zipfs/jdk.nio.zipfs.ZipFileSystemProvider.getFileSystem(ZipFileSystemProvider.java:169)
at jdk.zipfs/jdk.nio.zipfs.ZipFileSystemProvider.getPath(ZipFileSystemProvider.java:155)
at java.base/java.nio.file.Path.of(Path.java:208)
at java.base/java.nio.file.Paths.get(Paths.java:97)
at org.kit.engine.shader.ShaderFactory.readFile(ShaderFactory.java:21)
at org.kit.engine.shader.ShaderFactory.create(ShaderFactory.java:14)
at org.kit.game.ParticleGame.start(ParticleGame.java:37)
at org.kit.engine.Application.launch(Application.java:27)
at org.kit.Main.main(Main.java:10)
Источник: Stack Overflow на русском