在我的程序中,我使用类似的东西 -
String arielunicodePath = config_Folder_Path+File.separatorChar
+"resources"+File.separatorChar + "ARIALUNI.ttf";
arielunicodebase = BaseFont.createFont(arielunicodePath, BaseFont.WINANSI, BaseFont.EMBEDDED);
我已将ARIALUNI.ttf文件放在项目中的正确位置。
它在我的Windows机器上正常工作。但是当我将它部署到我们的Linux服务器时,上面的字体创建命令失败,出现以下错误 -
java.io.IOException: /x/programs/reporttransformationmsgd/config/resources/ARIALUNI.ttf not found as file or resource.
我确认该文件在程序正在寻找的确切位置可用。
我在这里缺少什么?
答案 0 :(得分:0)
在Windows上进行开发并在Linux上进行部署时,有时会忘记Linux通常以区分大小写的方式处理文件名,而Windows则不然。
在手头的情况下,程序寻找的文件名是ARIALUNI.ttf
,而实际的字体文件(就像在Windows字体文件夹中一样)被命名为ARIALUNI.TTF
。
在Windows上测试小写扩展意味着没有问题,而在Linux上它导致找不到文件或资源 IOException
。