执着用命令行来编译和运行Java程序,所以遇到了一些问题,但是收获是把java的CALSSPATH环境变量的本质给弄清楚了。所以IDE虽然方便,但是命令行才更接近计算机的本质,而且当你入门以后并且熟练以后,命令行只会给你带来更高的效率和成就感。
当java需要外包的jar包和运行一个不在当前目录的class文件的时候都需要CALSSPATH环境变量的正确设置才能够正常工作。其实原理相当的简单,只是要google一下,会发现大量的和我一样迷惑和犯错的人,而且有一些肯定是已经比较熟悉java语言和库的,只是突然环境改变了,突然无法工作了,又不知道该如何解决了。
其实CLASSPATH环境变量就是给java提供一个目录前缀,和PATH给shell提供一个目前前缀是一样的意义。
java不知道你把jar包放在什么位置,所以你需要把jar的目录设置到CLASSPATH里面去。
如果你的项目不是HelloWorld那样的一层目录,class文件直接就在本地目录,那么你也需要把你的工程目录设置到CLASSPATH里面去。不然,当你试图运行class的时候,java会找不到,然后出现“Exception in thread "main" java.lang.NoClassDefFoundError”这样的错误。其实,你在命令行随便敲一个 java xxx,也是会出现这个错误的。
一句话就是package所在的目录和package内部的目录。
这里需要特别注意在2个目录连接的时候多一个“/”的问题。