Не могу получить properties файл лежащий внутри jar
Я учился писать плагины для minecraft, столкнулся с проблемой я создал файл messages.properties, у меня нет доступа к нему. Когда я использую FileInputStream fis = FileInputStream("messages.properties"); он ищет файлы в корневой папке сервера. Сам файл лежит внутри jar. Если открыть jar как архив 
Код:
try {
Properties properties = new Properties();
FileInputStream fis = new FileInputStream("messages.properties");
properties.load(fis);
BaneLogger.log(Level.INFO, properties.getProperty("NoAccessCommand"));
} catch (IOException e) {
throw new RuntimeException(e);
}
Ошибка (Возможно будет полезно):
java.lang.RuntimeException: java.io.FileNotFoundException: messages.properties (Не удается найти указанный файл)
at ru.banejil.testplugin.Main.logProp(Main.java:36) ~[?:?]
at ru.banejil.testplugin.Main.onEnable(Main.java:22) ~[?:?]
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:263) ~[patched_1.16.5.jar:git-Paper-794]
at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:370) ~[patched_1.16.5.jar:git-Paper-794]
at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:500) ~[patched_1.16.5.jar:git-Paper-794]
at com.rylinaux.plugman.util.PluginUtil.load(PluginUtil.java:366) ~[?:?]
at com.rylinaux.plugman.command.LoadCommand.execute(LoadCommand.java:114) ~[?:?]
at com.rylinaux.plugman.PlugManCommandHandler.onCommand(PlugManCommandHandler.java:95) ~[?:?]
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[patched_1.16.5.jar:git-Paper-794]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:159) ~[patched_1.16.5.jar:git-Paper-794]
at org.bukkit.craftbukkit.v1_16_R3.CraftServer.dispatchCommand(CraftServer.java:826) ~[patched_1.16.5.jar:git-Paper-794]
at org.bukkit.craftbukkit.v1_16_R3.CraftServer.dispatchServerCommand(CraftServer.java:788) ~[patched_1.16.5.jar:git-Paper-794]
at net.minecraft.server.v1_16_R3.DedicatedServer.handleCommandQueue(DedicatedServer.java:470) ~[patched_1.16.5.jar:git-Paper-794]
at net.minecraft.server.v1_16_R3.DedicatedServer.b(DedicatedServer.java:437) ~[patched_1.16.5.jar:git-Paper-794]
at net.minecraft.server.v1_16_R3.MinecraftServer.a(MinecraftServer.java:1347) ~[patched_1.16.5.jar:git-Paper-794]
at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1135) ~[patched_1.16.5.jar:git-Paper-794]
at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:291) ~[patched_1.16.5.jar:git-Paper-794]
at java.lang.Thread.run(Thread.java:831) [?:?]
Caused by: java.io.FileNotFoundException: messages.properties (Не удается найти указанный файл)
at java.io.FileInputStream.open0(Native Method) ~[?:?]
at java.io.FileInputStream.open(FileInputStream.java:211) ~[?:?]
at java.io.FileInputStream.<init>(FileInputStream.java:153) ~[?:?]
at java.io.FileInputStream.<init>(FileInputStream.java:108) ~[?:?]
at ru.banejil.testplugin.Main.logProp(Main.java:32) ~[?:?]
... 17 more
Ответы (1 шт):
Автор решения: peterz
→ Ссылка
Да, потому что FileInputStream ищет файл, чтобы его открыть. Файл внутри джара -- это ресурс, его можно прочесть с помощью ClassLoader.getResourceAsStream()