classpath classpath是JVM用到的一个环境变量,它用来指示JVM如何搜索class,一般情况下无需设置classpath!默认的当前目录.于绝大多数情况都够用了。 jar包 jar包可以把package组织的目录层级,以及各个目录下的所有文件(包括.class文件和其他文件)都打成一个jar文件。 jar包实际上就是一个zip格式的压缩文件,而jar包相当于目录。在资源管理器中,找到正确的目录,制作了一个zip。然后,把后缀从.zip改为.jar。 jar包还可以包含一个特殊的/META-INF/MANIFEST.MF文件,MANIFEST.MF是纯文本,可以指定Main-Class和其它信息,同时jar包在包含其它jar时,需要在MANIFEST.MF文件里配置classpath。在大型项目中,不可能手动编写MANIFEST.MF文件,再手动创建zip包。会有其他开源构建工具。 模块 从Java 9开始,JDK又引入了模块(Module)。把一堆class封装为jar仅仅是一个打包的过程,而把一堆class封装为模块则不但需要打包,还需要写入依赖关系,并且还可以包含二进制代码(通常是JNI扩展)。此外,模块支持多版本,即在同一个模块中可以为不同的JVM提供不同的版本。而且只有它声明的导出的包,外部代码才被允许访问,更进一步隔离了代码的访问权限。 编写模块https://www.liaoxuefeng.com/wiki/1252599548343744/1281795926523938 ide直接生成jdr https://www.cnblogs.com/wuxu/p/10297038.html