Copyright©Zi10ng
不能甘居人后
最近用Java写了一个学生管理系统,最后导出Jar包的时候出了一些问题,记录下来,和大家分享
1. 乱码问题
问题描述
当我在IDE中编译并运行的时候,包括字符没有任何错误,但是当我把.class文件扔到cmd中运行的时候就会发现有乱码问题,cmd命令如下
java view.LoginRun
问题原因
大概可以判断出来是编码格式不一样,于是搜了一个Windows默认的编码标准,原来是GBK,但是我在IDE中用的编码格式是UTF-8,所以造成了乱码现象
解决方案
有两种解决方案
- 第一种,在I/O读取的过程中就直接强制按某一种编码格式读写:
BufferedReader bufferedReader = new BufferedReader( new InputStreamReader( new FileInputStream( HelpDao.class.getResource("/").getPath() + "//file//txt//helpMe.txt"), StandardCharsets.UTF_8)) - 第二种方式,在输入命令的时候,规定用某种编码格式
java -Dfile.encoding=UTF-8 view.LoginRun
2. 路径空指针异常
问题描述
当我通过反射来获取到相对路径的父目录时,代码如上所示,在cmd中运行一切正常,但是导出Jar包以后,就会爆出NPE
问题原因
暂时没有找到原因,关于这个问题我搜索了好久,包括在starkoverflow上寻求答案,甚至找到了04年oracle社区的一个回答,但是均没有什么收获。
解决方案
俗话说,条条大路通罗马,毕竟是在做大作业,功能还是要完成的,然后就寻求了另外一种方法——通过new File().getAbsolutelyPath()来获取将对路径的父目录可以实现
说句题外话,在导出jar包的时候,Jar包中尽量不要包含要写入的问题,如果必须要包含的话,就需要用到I/O流中的专门用于zip的输入输出
博主用Java写学生管理系统,导出Jar包时遇到问题。一是在cmd中运行出现乱码,原因是Windows默认GBK编码,IDE用UTF - 8编码,给出两种解决方案;二是导出Jar包后出现路径空指针异常,未找到原因,采用其他方法解决。
17万+

被折叠的 条评论
为什么被折叠?



