笔者最近在自学Java,由于之前有过较好的C和C++语言的基础,故学起Java来感觉上手挺快。最近编写一些小的Java代码时,遇到了两个小问题。经过查找资料和亲自测试,已得到解决。在这里将这两个小问题及其解决办法分享给各位初学者,以期共同学习进步。
[1] 文件编码格式不当引起的错误
使用JDK工具对Java源程序进行编译时,默认的文件编码格式为ANSI,若编写的Java源程序文件不符合该编码格式,则可能出现编译时报错。
笔者习惯使用Notepad++编辑器写代码(我想这个代码编辑器应该受很多程序员的喜爱,若读者没有使用过,这里强烈推荐使用),但是Notepad++默认的文件编码格式为UTF-8,不符合JDK的默认编码规则。那么如果Java源程序中输出的字符含有中文,在DOS下会显示编译错误,或者输出的中文字符显示为乱码。
解决方法:用Notepad++编写Java程序前,点击Notepad++第一行菜单栏里的 “编码”,在下拉菜单中,将编码格式选中为ANSI即可。此后编译运行,可正常显示中文字符。
[2] 使用package(包)不当引起的错误
Java中的“打包机制”(package)是为了防止程序多个地方出现相同的名字,而将局部程序限定在一块的一种机制。如下面的小代码:
1 package pack1; 2 3 public class HelloJava { 4 static String s1="你好!"; 5 6 public static void main(String[] args) { 7 String s2="Java"; 8 System.out.println(s1); 9 System.out.println(s2); 10 } 11 }
程序中第1行定义了一个包pack1,此时若直接使用 javac HelloJava.java 编译,再使用 java HelloJava 运行,就会出现错误:找不到或无法加载主类。
解决方法:编译时加上参数:javac -d . HelloJava.java 其中-d表示生成目录,. (句点) 表示在当前文件夹下生成目录。编译完后可以看到 HelloJava.java 所在文件夹下生成了新的文件夹 pack1,而编译后的 .class 文件就在文件夹 pack1 中。运行时,命令也要加上路径:java pack1.HelloJava 这样才能运行成功。
注:以上内容均为笔者亲自测试的结果,笔者也希望与各位读者相互交流,共同学习进步。