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

Java学习笔记1:Java的CLASSPATH,Path,JAVA_HOME环境变量

2014-05-27 11:03 309 查看
笔者用的是Macos系统。

今天开始学习java,兴致很高的写了个Java版本 hello world的程序,期待着在terminal出现这个神奇的字样。悲伤的是出现这个

Exception in thread "main" java.lang.NoClassDefFoundError: Person

Caused by: java.lang.ClassNotFoundException: Person

at java.net.URLClassLoader$1.run(URLClassLoader.java:202)

at java.security.AccessController.doPrivileged(Native Method)

at java.net.URLClassLoader.findClass(URLClassLoader.java:190)

at java.lang.ClassLoader.loadClass(ClassLoader.java:306)

at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)

at java.lang.ClassLoader.loadClass(ClassLoader.java:247)

找不到这个类名。很奇怪。

现在来看看java程序运行过程的解析

java是通过java虚拟机来解释运行的,也就是通过java命令,javac编译声称的.class文件就是虚拟机要执行的代码,也可以叫字节码。然后虚拟机通过classloader来装载这些字节码,也可以叫类。但是classloader哪里知道自己的类库或者你定义的类在哪里的。所以就出现了classpath这个参数来告诉classloader这些类在哪.

如何设置参数:

macos下设置环境变量可以在~/.profile里面设置,也可以在~/.bash_profile里面设置.

java有三个参数.JAVA_HOME,Path,classpath

1.JAVA_HOME.jdk安装路径.如果path,classpath使用的是绝对路径,可以不用在环境变量中添加JAVA_HOME

2.Path:道理很简单, 你想在任何时候都使用%JAVA_HOME%\bin\java 等来执行java命令吗。所以就设置好这个,你就可以直接使用java命令,操作系统会在当前目录的PATH变量目录查找相应应用的程序并且执行

3.CLASSPATH:确定你类的路径在哪里.这个变量设置的目的是为了程序能找到相应的.class文件

最后我在.profile文件加上这个



.代表当前路径

输入javac Person.java获得.class文件.再输入java Person



成功!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: