Rom*_*man 4 java packages class javac
我正在试图弄清楚如何组织使用包的源文件和类文件.我发现了一个非常有用的教程.但我还是有一些问题.
据我所知,在包名称和存储包元素的目录名称之间存在同构是一种好习惯.例如,如果我有一个名为aaa.bbb.ccc包含类的包,ddd那么最好有一个名为"ddd.class"的类文件,它位于"$ CLASSPATH/aaa/bbb/ccc /"中.我做对了吗?
如果是这种情况,Java编译器会自动将*.class文件放入正确的目录吗?
我无法得到这种行为.我将$CLASSPATH变量设置为 "/home/myname/java/classes".我执行了javac KeyEventDemo.java哪个包含package events;.我预计的javac将创建一个子目录events下/home/myname/java/classes,并把KeyEventDemo.class该子目录.
它没有发生.我试图帮助javac并自己创建"events"子目录.我javac再次使用但它不想将类文件放在"/ home/myname/java/classes/events"下.我究竟做错了什么?
您需要使用该-d选项指定.class文件最终的位置.只需指定基目录; javac将创建对应于正确包的必要目录.
示例(基于您的问题):
javac -d ~/java/classes KeyEventDemo.java
Run Code Online (Sandbox Code Playgroud)