1. 公共类“public class XXX”,文件名也要是XXX.java,否则会报错“类Hello是公共的, 应在名为 Hello.java 的文件中声明”.修正之后javac能顺利编译生成class文件。(非常经典的错误!——韩老师P19语。)
2. 报错“找不到或无法加载主类 Lindsey", 但编译是正常完成的,语句也有带";",说明没有语法错误,推测是终端读取的路径不对。经过尝试cd /到桌面路径后,重新编译之后能顺利运行了!这里注意,运行时java 文件名就行,不用带.class,否则也会报错“找不到或无法加载主类 Lindsey.class"。
lophida@lophidasdeiMac ~ % javac Lindsey.java
lophida@lophidasdeiMac ~ % java Lindsey
错误: 找不到或无法加载主类 Lindsey
lophida@lophidasdeiMac ~ % cd /Users/lophida/Desktop
lophida@lophidasdeiMac Desktop % javac Lindsey.java
lophida@lophidasdeiMac Desktop % java Lindsey
Lindsey is studying JAVA!
3. 每个语句以";"结束,否则编译时就会报错。
4. 一个源文件(即.java;.class是字节码文件)最多只有一个public类,其他类的个数不限。即:
public class 只能有一个,后面还可以写多个class,编译时会生成多个.class
5.一个源文件若包含一个public class,则文件名必须按该类名命名!!!(对应坑1,查百度+摸索半小时才解决的问题结果老师下下讲就讲到了……)
6. 一个源文件最多只能有一个public 类,其他类的个数不限,也可以将main方法写在public 类 中,然后指定运行非public 类,这样入口方法就是非public 的main 方法。
7. 定义一个public class和两个class,并在非public 类中写了main. 编译时发生如下错误:
lophida@lophidasdeiMac Desktop % javac Lindsey.java
Lindsey.java:18: 错误: 内部类Lindsey.Dog中的静态声明非法
public static void main(String[] args) {
^
修饰符 'static' 仅允许在常量变量声明中使用
Lindsey.java:24: 错误: 内部类Lindsey.Dog.Tiger中的静态声明非法
public static void main(String[] args) {
^
修饰符 'static' 仅允许在常量变量声明中使用
2 个错误
检查代码时发现是public class 的大括号的位置括在了最后,所以有如上报错。
正确代码:
public class Lindsey {
//编写一个main方法
public static void main(String[] args) {
System.out.println("Lindsey is studying JAVA!");
}
}
class Dog {
public static void main(String[] args) {
System.out.println("Hello, 小狗狗");
}
}
class Tiger {
public static void main(String[] args) {
System.out.println("Hello, 小老虎");
}
}
正确输出结果:
lophida@lophidasdeiMac Desktop % javac Lindsey.java
lophida@lophidasdeiMac Desktop % java Dog
Hello, 小狗狗
lophida@lophidasdeiMac Desktop % java Tiger
Hello, 小老虎



