用javac命令编译一个打包的类时,如果没有加参数"-d"时,则编译出的类不会放在包中(即相应的文件夹中),是没有包路径的,除非用参数"-d"指定类存放的位置,–d 指示的是编译后的class文件放在哪个目录下,并且会自动创建包名文件夹。
比如现有如下类:
package a.b;
class A{}
javac A.java 时会在当前工作目录下产生一个A.class文件,不会创建包目录结构。
javac –d . A.java ,则会在当前工作目录产生 a/b/A.class 目录与文件。
所以使用javac编译时要想产生相应的类包名上当结构,则需要带上 “–d .”这样的参数。
用java命令运行一个类时,如果该类是存放在包中的,则运行时一定要带上包名,并且在环境变量要有该包存放的路径。
java -classpath . a.A
注,如果用java命令运行时,没有配置classpath环境变量,则这里的classpath不能缺少。