javac的编译单位其实就是单个的java文件,为了达到同时编译多个java文件的目的,可以将所需编译的java文件路径保存在一个txt中,比如sourcelist.txt,以换行为分隔符(这个过程称为类文件注册)。这些java文件没有彼此联系的必要,它们可以是隶属不同的包、在不同的文件夹下(当然建议包路径相同的java类文件放在同一文件路径下),javac命令只会一行一行地读取其中的记录,作为一个单位进行类编译。
举例说明。假设你的这个包放在src文件夹下,src的父目录为project,sourcelist.txt也事先新建在project文件夹下。首先将这个包中你需要编译的java文件相对于src的路径(如src\com\test\Test.java)注册到sourcelist.txt文件中;接着在project文件夹中新建一个bin文件夹(或者
class文件夹,命名随你乐意取),用以编译后
class文件的放置(这个配以javac命令中-d选项去理解);如果还有其他类库(如
jxl.jar或者mysql.jar),建议在project目录下新建一个lib(同样命名不限)文件夹,然后复制到该文件夹下(配以-classpath选项理解);最后检查上述准备工作都完成,win + R、输入cmd都不用讲,现在在cmd中用cd命令切换到project目录,然后输入命令:
javac -classpath lib/
jxl.jar -sourcepath src @sourcelist.txt -d bin
现在就很好理解了。-d选项就是destination的意思,即生成
class文件被送到该选项后面的bin文件夹;-classpath就是将你要用到的jar包注册到类加载路径中;-sourcepath就是告诉javac命令去哪里找类文件。
最后呢,为了方便,可以在project文件夹下新建一个
bat文件,并输入以下内容:
javac -classpath lib/
jxl.jar -sourcepath src @sourcelist.txt -d bin
@pause
这样每次直接点击即可,而你需要编译其他包的或者其他java文件,直接在sourcelist.txt文件中添加或修改。这其实也是一种“弱耦合”、模块化的表现。
相关文章
- java包的所有类生成class
- .NET平台开源项目速览(18)C#平台JSON实体类生成器JSON C# Class Generator
- 在JQuery中,如何选择id以“aaa”开头、类“class_name”的所有按钮?
- 如何从类路径中读取Java包中的所有类?
- c#实例化继承类,必须对被继承类的程序集做引用 .net core Redis分布式缓存客户端实现逻辑分析及示例demo 数据库笔记之索引和事务 centos 7下安装python 3.6笔记 你大波哥~ C#开源框架(转载) JSON C# Class Generator ---由json字符串生成C#实体类的工具
- 如何从类路径中读取Java包中的所有类?
- [原创]java WEB学习笔记81:Hibernate学习之路--- 对象关系映射文件(.hbm.xml):hibernate-mapping 节点,class节点,id节点(主键生成策略),property节点,在hibernate 中 java类型 与sql类型之间的对应关系,Java 时间和日期类型的映射,Java 大对象类型 的 映射 (了解),映射组成关系
- IntelliJ IDE 中junit 测试自动生成类的静态方法,私有方法的模板 如 Default Test Class 比他功能全
- JSON C# Class Generator ---由json字符串生成C#实体类的工具