您的位置:首页 > 编程语言 > Java开发

classpath设置、javac/java执行class问题

2012-12-05 22:41 190 查看
回想起还在学校的时候,那时学习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:\   即:当前目录以及D盘、C盘。说明一下“.”点号表示当前目录的意思。

一、永久配置:在计算机——>系统属性——>环境变量中配置classpath内容和临时变量中的一样,就不多说了。

上面说的配置这个classpath路径到底有什么用呢?

看了很多网上的资料 大多说的很简单,也许这个问题真的很简单。大神们都不屑一顾了。

上面的classpath配置的内容就是:.class文件的存放目录。配置这个为的就是:当Java 运行命令执行时让JVM能找到所以编译后的class可执行文件。

同时呢,classpath配置后 其执行顺序是有规定的,JVM会先在classpath中找,然后才在当前目录中找,即:先classpath然后当前目录。这个和path刚好相反。有关path配置就不多说了。

上面的叙述 对于高手来说基本可以忽略了,不过对于新手上路的来说 还是值得一顾的!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐