【问题标题】:Java jar getResource not working in linux [duplicate]Java jar getResource在Linux中不起作用[重复]
【发布时间】:2017-04-01 01:54:05
【问题描述】:

相同的代码行在 Windows 中有效,但在 Linux 中无效。代码通过可执行的 jar 文件运行。

  • BuildPath 中的条目:{PROJECT}/src,{PROJECT}/res
  • Test1.java的工程路径:/src/com/qe/util/Test1
  • TC_Mapping.xml的工程路径:/res/TC_Mapping.xml

.

package com.qe.util;
public class Test1{
    public static void parseTCMapping(){
    ...
        String xmlPath = TCDetailsExtractor.class.getClassLoader().getResource("TC_Mapping.xml").toString();
        System.out.println(xmlPath);
        InputStream is = TCDetailsExtractor.class.getClassLoader().getResourceAsStream(xmlPath);
    ...
    }
}

【问题讨论】:

    标签: java linux classloader getresource


    【解决方案1】:

    如果你的 jar 中有资源,你应该使用getResourceAsStream() 方法来获取它的内容。当文件不在 jar 中但应用程序打包在 jar 中时,可能会出现这种情况。

    【讨论】:

    • 我已经在 [TCDetailsExtractor.class.getClassLoader().getResourceAsStream(..)] 这样做了,问题是这行代码在 Win 中有效,但在 linux 中无效。 InputStream 始终设置为 null。
    猜你喜欢
    • 2017-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-19
    • 2012-09-22
    • 1970-01-01
    • 2013-03-16
    • 2015-05-28
    相关资源
    最近更新 更多