Java学习日记之编程入门(5)

JShell工具(JDK 1.9 添加)

Shell是脚本程序的含义,在很多编程语言里面为了方便使用者进行代码的开发,都会提供有Shell交互式编程环境。有些时候可能值为了一些简短的程序验证,但是在Java里面就必须编写很多的结构代码才可以实现,为了解决这一困惑,才提供有JShell指令,直接运行即可。

打印字符串:
打印字符串
进行简单的计算:
进行简单的计算
除了可以直接在JShell命令之中进行程序的编写之外,也可以将一些内容直接交由一些文件来进行保存。
范例:定义一个程序文件:“d:\Java.txt”
在文件里直接写入:

System.out.println("Hello ytu!");
System.out.println("www.ytu.edu.cn");

希望可以直接在JShell中直接执行本程序。

jshell> /open d:/Java.txt

就可以完成任务。

如果不使用JShell工具,就输入:

jshell> /exit

就能够进行交互式的退出。

使用JShell就可以发现,只需要编写核心结构的代码即可,减少了对于结构化的需求。但是总体来说,可用性和实用性并不高,可以用来验证一些函数的功能。

CLASSPATH环境属性

CLASSPATH如果要完整的进行解释需要好多的知识,所以现在知识针对于CLASSPATH的概念做出一个先期的介绍。
例如:假设在 D:\Java 目录下提供有一个Hello.class的字节码文件;
        假设说当前用户所在目录为“D:\Java”,那么在这样的情况下可以直接使用java命令进行Hello.class字节码文件的解释,但是如果说现在脱离了这个目录,将当前目录修改为了“C:\”(C盘下并没有Hello.class字节码文件),如果再次执行命令解释,这个时候会出现如下的错误:

JDK1.8:
错误: 找不到或无法加载主类 Hello

JDK1.9及以上:
错误: 找不到或无法加载主类 Hello
原因:java.lang.ClassNotFoundException:Hello

出现当前目录中没有字节码,那么现在的需求就是:可以在不同的目录中都执行D:\Java\Hello.class文件。所以在这样一个处理的要求下就只能够依靠CLASSPATH环境属性来完成。
范例:定义CLASSPATH环境属性

SET CLASSPATH=d:\Java

再执行java Hello
在这里插入图片描述
当设置了CLASSPATH之后,这个时候在Java程序解释的时候回自动的通过CLASSPATH所设置的路径来进行类的加载,可以得出一个结论:JVM解释程序的时候需要得到CLASSPATH的支持。
但是有一个问题,发现默认情况下所有解释的类都是从当前所在的目录中加载的,所以可以得出一个结论:CLASSPATH默认设置为当前所在目录加载类文件。很明显如果全部通过设置CLASSPATH的方式就会导致整个操作系统的混乱,那么从正常的角度来讲,对于CLASSPATH还是应该采用默认设置方式,所以如果这个时候要想只通过当前目录加载,则可以将CLASSPATH设置为“.”。
**范例:**从当前所在路径加载类

SET CLASSPATH=.

在一些时候如果我们自行安装一些与Java开发的程序软件的时候,它有可能会自动的修改默认的CLASSPATH,也就是说这个“.”的配置会消失。这种情况下就必须利用明亮自己重新设置回来。
但是需要注意的是,现在的CLASSPATH是在一个命令行下的配置,如果该命令行关闭了,那么现在的配置就会消失,所以最好的做法事将其定义为全局变量,则可以直接在系统中追加有一个属性信息。

面试题:请问PATH和CLASSPATH的区别?

  • PATH:是操作系统提供的路径配置,定义所有可执行程序的路径;
  • CLASSPATH:是由JRE提供的,用于定义Java程序解释时类加载路径,默认设置的为当前所在目录加载,可以通过“SET CLASSPATH=路径”的命令的形式来进行定义;
    关系:JVM --> CLASSPATH定义的路径 --> 加载字节码文件
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值