最近在使用aspose将word转PDF并进行签章打印,读取凭证文件时遇到一个问题,凭证文件放在resources目录下,Windows下可正常读取,但是打成jar包部署到Linux服务器上却取不到文件。由此问题引出以下思考:
在本地项目读取文件时
this.getClass().getClassLoader().getResource("").getPath()+fileName
this.getClass().getResource("/filename").getPath()
都是可以成功的;
但是jar打包后上面方式读取文件时 会变成 jar!filename 这样的形式去读取文件,这样是读取不到文件的;
可以使用class.getResourceAsStream("/filename") 以流的形式读取文件,是可以读取的到的;
private static boolean getLicense() {
boolean result = false;
try {
ClassLoader loader = Thread.currentThread().getContextClassLoader();
// 凭证文件
CONFIG_PATH =null;
//method one(Windows能读到文件,Linux读不到文件)
URL url = loader.getResource("config/license.xml");
String filePath = url.getPath();
logger.info("test-path : "