一、对于公共类(public),java源码文件名一定要与类名一致,否则会报错
D:\project\helloWorld>javac hello.java
hello.java:1: 错误: 类HelloWorld是公共的, 应在名为 HelloWorld.java 的文件中声明
public class HelloWorld {
^
1 个错误
二、一个java文件中只能有一个公共类,也可以新加默认(default)类型的类
三、当一个文件中只有默认类的时候,类名可以不与文件名相同,文件中可以有多个默认类
四、同一个目录下的源文件属于同一个包(package)
五、源码文件可以不命名包,但是不适合在项目中使用,只用来简单测试
HelloWorld.java
java
//package main;
public class HelloWorld {
public static void main(String args []){
System.out.println("hello world");
}
}
将package注释掉,在当前目录下编译并运行
bash
javac HelloWorld.java
java HelloWorld
六、包(package)引入
1、包名要和源文件的物理路径一致,即包名是com.hello,那么该包中的所有源文件都要在com/hello路径下,这引出了另一个事实,即同一个路径下的所有源文件都属于同一个包。
2、import 只会引入单个包成员或者包的全部内容
java
import graphics.Rectangle;
import java.awt.*;
七、javac编译源文件时包是如何引入的?
bash
java -help
PS C:\Users\love1\Documents\technology\java\project\hello> javac -help
用法: javac <options> <source files>
其中, 可能的选项包括:
-g 生成所有调试信息
-g:none 不生成任何调试信息
-g:{lines,vars,source} 只生成某些调试信息
-nowarn 不生成任何警告
-verbose 输出有关编译器正在执行的操作的消息
-deprecation 输出使用已过时的 API 的源位置
-classpath <路径> 指定查找用户类文件和注释处理程序的位置
-cp <路径> 指定查找用户类文件和注释处理程序的位置
-sourcepath <路径> 指定查找输入源文件的位置
-bootclasspath <路径> 覆盖引导类文件的位置
-extdirs <目录> 覆盖所安装扩展的位置
-endorseddirs <目录> 覆盖签名的标准路径的位置
-proc:{none,only} 控制是否执行注释处理和/或编译。
-processor <class1>[,<class2>,<class3>...] 要运行的注释处理程序的名称; 绕过默认的搜索进程
-processorpath <路径> 指定查找注释处理程序的位置
-parameters 生成元数据以用于方法参数的反射
-d <目录> 指定放置生成的类文件的位置
-s <目录> 指定放置生成的源文件的位置
-h <目录> 指定放置生成的本机标头文件的位置
-implicit:{none,class} 指定是否为隐式引用文件生成类文件
-encoding <编码> 指定源文件使用的字符编码
-source <发行版> 提供与指定发行版的源兼容性
-target <发行版> 生成特定 VM 版本的类文件
-profile <配置文件> 请确保使用的 API 在指定的配置文件中可用
-version 版本信息
-help 输出标准选项的提要
-A关键字[=值] 传递给注释处理程序的选项
-X 输出非标准选项的提要
-J<标记> 直接将 <标记> 传递给运行时系统
-Werror 出现警告时终止编译
@<文件名> 从文件读取选项和文件
javac javac 后直接根java源文件,在编译源文件的时候,对于所有引入的包会以当前路径为基准,去到该包对应的物理路径下去加载对应的成员。
-classpath 或者 -cp 也可以指定基准路径
八、java 如何运行程序
bash
C:\Users\love1\Documents\technology\java\project>java -help
用法: java [-options] class [args...]
(执行类)
或 java [-options] -jar jarfile [args...]
(执行 jar 文件)
java 包名.类名 会以当前路径为基准,去到该包名对应的物理路径下去寻找对应的类,并以此路径为基准加载引入的其他类。
九、设置CLASSPATH
windows
1、C:> sdkTool -classpath classpath1;classpath2...
2、set CLASSPATH=classpath1;classpath2...
3、C:> java -classpath C:\java\MyClasses;C:\java\OtherClasses ...
4、java -classpath C:\java\MyClasses\myclasses.jar utility.myapp.Cool
5、java -classpath C:\java\MyClasses\myclasses.zip utility.myapp.Cool
linux