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

  

  笔者用的是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


成功!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值