回想起还在学校的时候,那时学习Java基本上都是用工具的,比方说Eclipse、MyEclipse等。工具用多了,一旦脱离工具 才发现 成了废材。所以有空之余弄了下JDK下编译和运行。
有关JDK与JRE的功能就不多说了。实际如果只运行Java程序的话下载个JRE安装也行了。现在的JDK安装后里面都会有个JRE,因为JDK中一些运行程序也是Java写的,所以也需要一个JRE运行环境。
写了一个很简单的Hello Word 这应该是最常见的了。
将该文件位于D盘下;
配置好基本环境变量后,即:jdk、jre后
进入D盘目录,javac Stu.java进行编译成class文件;
然后运行刚编译好的class文件,输出Hello Word:
可是当切换目录到其他盘的时候再次运行将出现NoClassDefFoundError错误:
曾经为了这个问题郁闷了良久。心想:“为什么不能在任意目录运行自己的class文件呢?”;后来经过网上的资料总算是明白了过来。
原来Java命令运行和之前配置path中的jdk以及jre是不同的,即使是配置了jdk结果还是不能在任意目录下运行指定的class;
因此此时需要配置classpath
可以通过两种方法配置;
一、临时配置:set classpath=.;D:\;C:\
一、永久配置:在计算机——>系统属性——>环境变量中配置classpath内容和临时变量中的一样,就不多说了。
上面说的配置这个classpath路径到底有什么用呢?
看了很多网上的资料 大多说的很简单,也许这个问题真的很简单。大神们都不屑一顾了。
上面的classpath配置的内容就是:.class文件的存放目录。配置这个为的就是:当Java 运行命令执行时让JVM能找到所以编译后的class可执行文件。
同时呢,classpath配置后 其执行顺序是有规定的,JVM会先在classpath中找,然后才在当前目录中找,即:先classpath然后当前目录。这个和path刚好相反。有关path配置就不多说了。
上面的叙述 对于高手来说基本可以忽略了,不过对于新手上路的来说 还是值得一顾的!