Java getResourceAsStream()始终返回null
我正试图将文件“config.yml”复制到“plugins/AntiAura/config.yml”中 然而,我一直得到一个NPEJava getResourceAsStream()始终返回null,java,Java,我正试图将文件“config.yml”复制到“plugins/AntiAura/config.yml”中 然而,我一直得到一个NPE [14:48:22 WARN]: java.lang.NullPointerException [14:48:22 WARN]: at a.e.a(Main.java:413) [14:48:22 WARN]: at a.e.d(Main.java:384) [14:48:22 WARN]:
[14:48:22 WARN]: java.lang.NullPointerException
[14:48:22 WARN]: at a.e.a(Main.java:413)
[14:48:22 WARN]: at a.e.d(Main.java:384)
[14:48:22 WARN]: at a.e.onEnable(Main.java:637)
[14:48:22 WARN]: at org.bukkit.plugin.java.JavaPlugin.setEnabled( JavaPlug
in.java:321)
[14:48:22 WARN]: at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(
JavaPluginLoader.java:335)
[14:48:22 WARN]: at org.bukkit.plugin.SimplePluginManager.enablePlugin(Si
mplePluginManager.java:405)
[14:48:22 WARN]: at org.bukkit.craftbukkit.v1_8_R1.CraftServer.loadPlugin
(CraftServer.java:355)
[14:48:22 WARN]: at org.bukkit.craftbukkit.v1_8_R1.CraftServer.enablePlug
ins(CraftServer.java:315)
[14:48:22 WARN]: at org.bukkit.craftbukkit.v1_8_R1.CraftServer.reload(Cra
ftServer.java:744)
[14:48:22 WARN]: at org.bukkit.Bukkit.reload(Bukkit.java:534)
[14:48:22 WARN]: at org.bukkit.command.defaults.ReloadCommand.execute(Rel
oadCommand.java:23)
[14:48:22 WARN]: at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCo
mmandMap.java:141)
[14:48:22 WARN]: at org.bukkit.craftbukkit.v1_8_R1.CraftServer.dispatchCo
mmand(CraftServer.java:645)
[14:48:22 WARN]: at org.bukkit.craftbukkit.v1_8_R1.CraftServer.dispatchSe
rverCommand(CraftServer.java:631)
[14:48:22 WARN]: at net.minecraft.server.v1_8_R1.DedicatedServer.aM(Dedic
atedServer.java:353)
[14:48:22 WARN]: at net.minecraft.server.v1_8_R1.DedicatedServer.z(Dedica
tedServer.java:317)
[14:48:22 WARN]: at net.minecraft.server.v1_8_R1.MinecraftServer.y(Minecr
aftServer.java:623)
[14:48:22 WARN]: at net.minecraft.server.v1_8_R1.MinecraftServer.run(Mine
craftServer.java:526)
[14:48:22 WARN]: at java.lang.Thread.run(Thread.java:722)
[14:48:22 INFO]: null ||
正如您从stacktrace底部的de bug消息中看到的,然后是我使用的行
InputStream jarURL = Main.class.getResourceAsStream("/config.yml");
只是返回null
我已经尝试了这两种方法,InputStream jarURL=Main.class.getResourceAsStream(“/config.yml”)
和InputStream jarURL=Main.class.getResourceAsStream(“config.yml”)代码>。文件“config.yml”肯定在JAR文件中:
建议的解决方案,是我已经在做的事情,并没有解决问题
这里有什么问题?在类路径的根目录中没有config.yml,但是在joehot200中,所以需要getResourceAsStream(“/joehot200/config.yml”)除非Main
类的限定名是plugins.AntiAura.Main
,否则两次尝试都是错误的。在名称前面加上/
意味着将其解析为绝对路径,而省略/
则意味着相对于调用该方法的类进行解析。您可以尝试Main.class.getResourceAsStream(“/plugins/AntiAura/config.yml”)
…啊!所以我需要把它放在模糊的包里!!嗯,这是每一个新版本发布的另一个额外步骤。谢谢你的帮助!仍然在寻找一个更实用的解决方案(如果有的话)。这取决于您的模糊处理程序,即当资源在模糊处理之前驻留在同一个包/文件夹中时,该工具应提供自动调整资源路径的功能。我知道,yguard
有这样一个选择,我希望其他人也有类似的选择。哦,是的。。。愚蠢的我。。。谢谢