sky的gravatar头像
sky 2017-11-24 09:10:28

centos环境下File file = new File(path);中文名字,file.exists()返回的是false文件不存在?

我们把一个简单的Java项目打成了一个jar,注册到系统服务了,用系统服务启动就找不到文件,例如:

  File file = new File(path);文件名字为中文名字,file.exists()返回的是false,改成数字和应为其他都可以,不过最后用

Java-jar test.jar 也是可以找到文件的file.exists()返回的是true,很奇怪最后打印日志就这个地方不相同不知道怎么改系统服务的这个地方System.getProperty("file.encoding")返回的是这个编码格式ANSI_X3.4-1968,用命令启动就返回的是utf-8,求指导怎么修改系统服务编码格式为utf-8

 

源码main里面执行这个

public void isExistFile()
    {
        String path = "/data/文档.docx";
        log.debug("file.encoding:{}===",System.getProperty("file.encoding"));
        File file = new File(path);
        if (file.exists())
        {
            log.debug("文件:{} 存在", file.getName());
        }
        else
        {
            log.debug("文件:{}===不存在",file.getName());
        }
    }

所有回答列表(2)
膜拜java的gravatar头像
膜拜java  LV6 2017年11月24日

是不是乱码咯

sky的gravatar头像
sky  LV22 2017年11月24日

不是乱码看了

顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友