classpath设置、javac/java执行class问题 - Go语言中文社区

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


回想起还在学校的时候,那时学习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配置就不多说了。



上面的叙述 对于高手来说基本可以忽略了,不过对于新手上路的来说 还是值得一顾的!




版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/vtopqx/article/details/8262732
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-07 22:53:27
  • 阅读 ( 841 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢