Java的InputStream in = Object.class.getResourceAsStream()返回Null

0 0 java linux ide
Cocos︷Creator
Cocos︷Creator

声望值:201 0人

2019-02-11 14:18:00 提问

关注 0关注

收藏 0收藏, 256浏览

程序运行报错thread "main" java.lang.ExceptionInInitializerError原因是inStream parameter is null,我看了一下在加载properties文件时,prop.load(in)是加载了一个空指针。程序在linux服务器是可以运行的,但在本地windows IDE下为什么会出这种情况,是路径问题吗?我尝试改了绝对路径也是相同的错误,getResourceAsSteam()后面的路径究竟怎么个格式,看了很多答案,都没尝试成功,比如改成class.getclass().getResourceAsSteam()依旧是返回Null。下图是我的目录

clipboard.png

我加载时的代码:

clipboard.png

请先 登录 后评论

8个回答

  • 路漫猿兮54声望 2018-09-25 09:27

    类名.class.getClassLoader().getResourceAsStream("文件名");
    请先 登录 后评论
  • l梁上君子141声望 2018-09-25 09:27

    你把你部署后的ApplicationResources.properties文件的路径截图一下呢,确保该文件是在class路径下就可以使用:this.class.getClassLoader().getResourceAsStream("ApplicationResources.properties");
    请先 登录 后评论
  • l梁上君子141声望 2018-09-25 09:27

    InputStream input = this.getClass.getResourceAsStream("ApplicationResources.properites"); 这样就可以了
    请先 登录 后评论
  • SOC丶小兮123声望 2018-09-25 09:27

    试试这个 Thread.currentThread().getContextClassLoader().getResourceAsStream("ApplicationResources.properites");
    请先 登录 后评论
  • 疯狂Clark116声望 2018-09-25 09:29

    InputStream in = 当前类名.class.getResourceAsStream("/ApplicationResources.properties");
    请先 登录 后评论
  • ™霸气归来@123声望 2018-09-25 09:29

    SomeType.class.getResourceAsStream() 这个等价于 SomeType 被哪个ClassLoader加载,并且调用 ClassLoader.getResourceAsStream() 方法。 楼主代码中的Object.class 是被 Bootstrap ClassLoader,自然读不到
    请先 登录 后评论
  • error(*)177声望 2018-09-25 09:29

    把你的文件/ApplicationResources.properties放在java/src的目录下面
    请先 登录 后评论
  • 大神都是不可靠的64声望 2018-09-25 09:31

    请给出你的绝对路径
    请先 登录 后评论

注册新账号

悬赏追问
10
  • 10
  • 20
  • 50
  • 100
  • 200
  • 输入数值
发布追问