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配置就不多说了。
上面的叙述 对于高手来说基本可以忽略了,不过对于新手上路的来说 还是值得一顾的!
有关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配置就不多说了。
上面的叙述 对于高手来说基本可以忽略了,不过对于新手上路的来说 还是值得一顾的!
相关文章推荐
- javac,java,classpath的各种问题
- 关于java命令行在dos窗口下执行class文件时提示“找不到或无法加载类”问题
- DOS / Linux Shell 下运行Java时设置ClassPath的问题
- javac命令编译java文件成class文件出现中文乱码问题解决
- 问题006:为什么用java.exe执行编译的类文件的时候,不这样写java Welcome.class
- Windows 多JDK版本设置方法(Java -version 和 Javac -version 版本不一致问题等)
- java命令执行类,这里设置了classpath,系统变量里的classpath将失效
- 问题007:JDK版本与JRE版本不同导致java.exe执行类文件错误 java.lang.UnsupportedClassVersionError错误
- JMeter命令行执行及问题解决 Error in NonGUIDriver java.lang.RuntimeException: Could not find the TestPlan class!
- linux shell java jar 使用依赖包时classpath的设置问题
- 学习Java的第一步是安装好JDK,写一个Hello World, 其实JDK的学习没有那么简单,关于JDK有两个问题是很容易一直困扰Java程序员的地方:一个是CLASSPATH的问题,其实从原理上来说,是要搞清楚JRE的ClassLoader是如何加
- javac编译成功,用java运行class文件出现“找不到或无法加载主类” 的问题
- 关于 java 的CLASSPATH设置问题
- Eclipse下好使,但是cmd下执行java运行class文件提示Exception in thread "main" java.lang.NoClassDefFoundError问题
- 关于hibernate执行select count( *) 出现java.lang.ClassCastException问题
- javac编译成功,用java运行class文件出现“找不到或无法加载主类” 的问题解决起来很简单
- 问题:Unable to find a javac compiler; com.sun.tools.javac.Main is not on the classpath.Perhaps JAVA_HOME does not point to the JDK
- Java中包的概念;环境变量的设置问题;javac 与java,javap的应用
- java设置一段代码执行的超时时间的简单方法 间接实现获取Connection超时问题
- Eclipse下好使,但是cmd下执行java运行class文件提示Exception in thread "main" java.lang.NoClassDefFoundError问题