1. 导入不同文件夹里的类的方法。
关键字:package 包;import;classpath;
问题描述:
在F:\java里有一个文件夹study。study文件夹内有个类RandomChar,该类有一个方法getRandomLowerCaseLetter;在其他文件夹内有一个类CountLetter,想直接调用方法RandomChar.getRandomLowerCaseLetter()。
实现方案如下:
-
将F:\java添加到classpath里去。
classpath在环境变量中配置。 -
在RandomChar.java的开头,声明该类所属的package;添加代码如下
package study;
package必须要和class文件所在的文件夹的名字相吻合。 -
在CountLetter.java中导入类RandomChar;代码如下:
import study.RandomChar;在编译CountLetter.java的时候,编译器和 java 虚拟机通过将 import的package 名字加到 classpath 后来构造 .class 文件的路径,因此路径是F:\java\study\RandomChar.class。
2. 将class文件放在专门的目录中,不和java源文件一起。
在使用javac XX.java的时候,会将生成的字节码默认的放在和**.java的同一个目录下。
使用javac -d 路径A XX.java 命令 可以将生成的class文件放在指定的目录下,该目录有当前路径,路径A,和**.java中指定的package相关。
具体如下:
假设A.java 文件的路径是F:\java\study。 package指定为com.man
在F:\java\study下执行命令 javac -d …\classes A.java
则A.class所在的文件路径为 F:\java\classes\con\man\A.class;
此时可将F:\java\classes 路径添加到classpath中,当需要在其他类中导入A类时,只需要import com.man.A。