目录
6、CLASSPATH:(给类加载器指路,使类加载器在任何路径下,都可以通过classpath中的路径找到类文件)
7、第一个程序(你好世界!)(还没有学代码的具体结构,了解该程序功能是完成一个输出即可,后文会提到该段代码的理解)
1、首先安装JDK
什么是JDK?
下载网址:http://www.oracle.comhttp://JDK下载
2、JDK-JRE-JVM之间的关系
JVM:java虚拟机
JDK:Java开发工具包,JDK一般会自带一个JRE
JRE:JAVA运行时环境,JRE包括JAVA虚拟机
JRE可以独立安装,也可以用jdk内含的JRE
如果只需要进行运行,下载JRE即可,例如你去帮助不同地区的客户进行部署和测试,只需要在客户电脑上安装JRE即可,
JDK包含JRE,JRE包含JVM;也可以安装一个独立的JRE
3、JDK目录初简介
4、环境变量
以上问题可以通过设置环境变量解决(我的电脑——属性——高级系统设计——环境变量)
环境变量的作用:帮助操作系统找到硬盘命令和相关文件
原理:
5、利用DOS窗口运行JAVA程序
如果不切换:
也可以直接写绝对路径
也可以先转至目录再进行编译和运行
6、CLASSPATH:(给类加载器指路,使类加载器在任何路径下,都可以通过classpath中的路径找到类文件)
7、第一个程序(你好世界!)(还没有学代码的具体结构,了解该程序功能是完成一个输出即可,后文会提到该段代码的理解)
package test;
public class helloWorld {
public static void main(String[] args) {
System.out.println("helloworld");
}
}
7.1 当在cmd窗口输入java test.test02之后,执行原理:
当对指令进行运行后,会启动java虚拟机,启动虚拟机之后,会加载类加载器,类加载器在电脑中找到test02类文件,然后对该类文件进行执行,如果找不到该文件报错——“找不到或无法加载主类”;
7.2 那么我们考虑以下,操作系统是如何在电脑中找到那个字节码文件的呢?
首先类加载器默认会从当前运行路径下寻找并加载字节码文件
如果想指定一个路径去加载字节码文件,这就是classpath的作用,也就是之前我们提到的为类加载器指路,我们需要根据需要对该变量进行配置。
该变量和path变量不同,path变量是属于windows操作系统的,但是classPath是java所特有的一个属性,不属于windows操作系统。
helloworld.class的所在路径:D:\Idea\JAVATEST\src\test
那么我们将classpath的值设定为:D:\Idea\JAVATEST\src\test,当在任意路径执行该字节码文件时,类加载器就会直接去classpath指定的路径寻找即D:\Idea\JAVATEST\src\test,这样就可以找到字节码文件,进而顺利的运行了。
但是注意这种方式会存在一个缺点就是如果指定了路径,那么类加载器每次加载类字节码文件的时候,就只会去指定的路径进行寻找了,这对我们代码存放的自由有一定的限制,所以从某些方面来说,不配置会更方便一点,如果配置之后项目的位置会受限,不配置运行的时候将地址切过去就可以了。
但是如果不是在字节码所在的文件路径进行执行,且不对classpath进行配置,直接执行会报错,因为类加载器在当前路径找不到该文件且没有classpath为其指路。这种情况下,就需要将运行路径切换到它所在的文件夹,然后在对所需的字节码文件执行。
Microsoft Windows [版本 10.0.19042.1466]
(c) Microsoft Corporation。保留所有权利。
C:\Users\lenovo>java test.test02
错误: 找不到或无法加载主类 test.test02
(¬‿¬)一个好的程序员必须要学会写注释
8、JAVA注释
小妙招,对于idea来说常用的注释快捷键的【ಥ_ಥ有了快捷键才能有助于程序员爱上编写注释】
单行注释快捷键:ctrl+/
多行注释快捷键:ctrl+shift+/
9、对于第一个程序HelloWorld程序的解释
一旦对某个类文件请求运行,一定要在这个类中有入口,否则是无法执行的。
PS:java中所有的符号都是英文半角的格式
10、Public class和class的区别:
在一个java类型的文件中可以有多个class类,但是只能有一个public类型的类,public类型的类的类名要和当前文件(java源文件)的文件名相同(如果不相同,会进行报错),而且该类不是必须的,在编译后,代码中的每一个class都会对应生成一个.class字节码文件。
代码如下:
package test;
public class helloWorld {
public static void main(String[] args) {
System.out.println("helloworld");
}
}
class B
{
}
如果类名和文件名不相同(报错)
文件结构如下:
package test;
public class helloWorld {
public static void main(String[] args) {
System.out.println("helloworld");
B b=new B();
}
}
class B
{
public static void main(String[] args) {
System.out.println("helloworld");
}
}
运行指令java test.B,可以看出最终是顺利执行的,并完成了输出
D:\Idea\JAVATEST\src>cd D:\Idea\JAVATEST\src\test
D:\Idea\JAVATEST\src\test>javac helloWorld.java
D:\Idea\JAVATEST\src\test>cd D:\Idea\JAVATEST\src
D:\Idea\JAVATEST\src>java test.B
helloworld
但是如果B类体中没有主方法,会报以下错误:
D:\Idea\JAVATEST\src>java test.B
错误: 在类 test.B 中找不到 main 方法, 请将 main 方法定义为:
public static void main(String[] args)
否则 JavaFX 应用程序类必须扩展javafx.application.Application
附加链接:
搭建java的开发环境:Java开发环境的搭建以及使用eclipse从头一步步创建java项目 - 欢复 - 博客园 (cnblogs.com)