02-命令行下运行Java代码
02-命令行下运行Java代码
这里如果报错,说明环境变量PATH没有配置。
如果没有配置PATH环境变量,仍然想要执行javac命令,那么就需切换到javac命令目录下去执行。
当执行一个程序的时候,首先在当前目录下查找是否有这个程序,如果没有,那么就去path环境变量下查找,以找到的第一个为准,也就是在path下有多个这个程序,但是找到了第一个就停止往后找了。
如果都没找到,那么就会报错了。
查看环境变量内容
命令行下设置环境变量PATH内容
set path=jdk路径\bin
注意,配置到bin目录。
命令行下配置,退出cmd,即失效,永久配置到环境变量配置文件中进行配置。
注意,这里配置JAVA_HOME环境变量,然后通过该环境变量再去指定到bin目录,目的是不用去频繁的更改PATH环境变量,方式修改错误。如果jdk变换其他版本了,只需要更改JAVA_HOME环境变量即可。
编写测试java文件
[](javascript:void(0)😉
class Hello
{
}
class Welcome
{
}
[](javascript:void(0)😉
注意:编译的时候,对于文件名的大小写是不敏感的。
在Java的源文件中可以写入多个类,但是编译之后,每个类会单独生成一个字节码文件(class文件)。
当有很多的class文件的时候,给别人提供使用是不方便的,因此,可以将多个class文件进行打包,jar文件。
可以使用jar cvf xxx.jar Hello.class Welcome.class方式打包。
通常打包操作可通过IDE完成。
[](javascript:void(0)😉
class Hello
{
}
public class Welcome
{
}
[](javascript:void(0)😉
当在一个源文件中定义了一个public的类,那么这个源文件的文件名必须取名为这个public类的类名。java中的规定。
因此,在一个源文件中,有且只能有一个public的类。也可以没有public的类,那么文件名可以是任意类的类名或者是其它的名字。
编译的时候,可以没有main函数,但是要想执行,必须有main函数。否则执行错误。
另外,java解释器,解释执行的时候,加载的是一个类,而不是一个文件,不是welcome.class这个文件。而是Welcome这个类。
java解释器要加载这个类,因此,后面的这个类名是大小写相关的。
注意,main函数必须是public static void的。java Welcome加载类的过程为,首先根据这个名字找到对应的
class文件,即找到Welcome.class文件,然后jvm将该文件加载入内存的方法区(代码区)中,然后将class文件解
开,然后搜寻找到public static void的main函数,然后将该main函数加载到方法调用栈上进行执行。
第一次运行java Welcome没有报错,原因是,在Welcome.class目录下运行,能够找到对应文件。
第二次运行java Welcome报错,原因是,当前目录下没有Welcome.class文件了,且classpath环境变量没有配置,所以找不到类文件。
当定义了classpath之后,那么java解释器在加载一个类的时候,就会完全根据classpath定义的路径去搜索要加载的类。而不会去看是否当前目录下有这个class文件。
可以看到,java解释器加载类的时候,当定义了classpath的时候,是完全按照定义的classpath指定的路径去搜寻的,而不会在当前路径下查找了。即使当前路径下有这个类,也不会找到。
为了让当前路径下的类也能找到,那么classpath中添加当前路径‘.’即可。
为了配置的classpath永久生效,也需要配置到环境变量中去。
因此,需要配置两个环境变量:
path和classpath。
安装jdk的路径要注意: 不能带有中文路径或者是空格。
安装过程中,先安装jdk,然后又会提示你安装jre,实际上这个jre完全可以不安装,因为前面安装的jdk已经包含了jre了。
jdk目录的介绍:
bin: 存放的是java的开发工具。
db : JDK7附带的一个轻量级的数据库,名字叫做Derby。
include :存放的调用系统资源的接口文件。java程序中向os调用的时候,需要的本地os接口文件。
jre : java运行环境
lib : 核心类库。
src.zip : java源代码
java.exe 启动java虚拟机解释并执行指定的class文件。
java工具的使用格式:
java 指定的class文件
javac.exe 启动java编译器对指定的java源文件进行编译。
编写第一个java的程序:
第一步: 新建一个txt文件。把后缀名改成java。
第二步: java 代码全部都是写到类上面的。也就是在java中,类是程序组织的最小单位。
如何编写一个类:
使用一个关键字class即可定义个类。
格式:
class 类名{
} 备注: 大括号表示是一个类的范围,在类的范围之内都可以写代码,
第三步: 编写一个主方法。 主方法的写法是固定的,是一个程序的入口,代码从主方法开始执行
当直接双击一个可执行文件一闪而过就关闭了,那么一般说明,这个可执行文件需要一个控制台中来执行它。
如何启动java编译对java的源文件进行编译?
javac的使用格式:
javac java源文件。
编译的过程中我们就面临 的问题:每次编译的时候都需要写上java源文件的完整路径。 烦!!!
即需要在javac可执行文件的目录下,执行”javac java源文件完整路径”
这样是不好的,将源文件放到了javac的安装目录了,不好。乱。
每次都需要写全路径,麻烦。
解决方案: 如果可以在任意的路径下都可以找到java的开发工具,那么该问题就解决了。
在控制台写一个可执行文件的文件名,然后能够执行的原理:
在控制台写一个可执行文件的文件名,那么系统首先会在控制台当前路径下去搜索是否存在该文件,如果可以找到指定的文件,那么就执行该文件,如果找不到该文件,那么系统还会根据path的环境变量所保存的路径信息下去搜索是否有指定的文件,如果能找到,那么就执行该文件。
SystemRoot是Windows系统的根路径。
即这个目录。