classpath
因为Java是编译型语言,源码文件是.java,而编译后的.class文件才是真正可以被JVM执行的字节码。
classpath是JVM的一个环境变量,它用告诉JVM如何搜索.class.就是一组目录的集合,而且设置搜索路径和操作系统有关,分别在各自操作系统的环境变量就可以设置,原则上不需要设置,jvm可以自己寻找核心库的位置.
classpath就是一组目录集合,设置与操作系统有关.
在windows上面
.;\work\project1\bin;C:\shared;"D:\My Documents\project1\bin"
.代表当前路径,如果需要加载abc.xyz.Hello类的时候,会依次查找:
1.<当前目录>\abc\xyz\Hello.class
2.\work\project1\bin\abc\xyz\Hello.class
3.C:\shared\abc\xyz\Hello.class
或者在终端下运行来确定路径
java -cp .;C:\work\project1\bin;C:\shared abc.xyz.Hello
但是,在IDE下编程的时候,运行java程序,IDE自动传入的-cp(-classpath)参数就是当前工程下的bin目录和引入的jar压缩包,bin目录下专门方编译之后的.class文件.
更好做法的是不要设置classpath,对于当前默认的目录,已经足够了
jar包
java将.java文件编译后生成.calss文件放在jvm上运行.
jar包是一种特殊的压缩包,是用来将散落的.class的目录,这里的目录也就是所谓的打成jar包,方便引入,利用常用的压缩软件压缩,修改后缀为jar即可.