Java学习打卡:第十四天


内容导航

  • Java学习打卡:第十四天
  • 内容管理
  • 什么是cmd
  • 写文背景介绍
  • 搭建java环境
  • 首先先下载JDK,java开发工具包
  • 第二步:将压缩包解压到指定目录
  • 第三步:关键:配置环境变量
  • 第四步:检验是否完成
  • 常用的编译命令(非常重要)
  • 一个有趣的问题
  • 程序演示
  • 找不到加载类的解决方法




Java养成计划(打卡第14天)


内容管理

什么是cmd

CMD是COMMAND的缩写,CMD窗口模拟以前的DOS系统,可以通过命令一个一个的执行任务,但不能同时执行多个。 关于CMD命令,你可以在CMD窗口下输入help,回车后你会在这儿找到很多常用的命令,如cd,dir……非常的适用

写文背景介绍

电脑上面下载了很多Java的运行软件,但是下载之后发现其功能是局限的,比如我现在要编写web程序,那么for java developer的就不能提供帮助了,所以我们为何不利用我们强大的cmd窗口执行代码文件呢,这样我们又省事,别人看起来也炫酷

搭建java环境
首先先下载JDK,java开发工具包

我们都知道几个名词,之前也提到过,就是JDK,JRE,JVM,这里JDK就是我们的java程序运行所必要的的环境,那这个开发工具包如何获取呢

http://www.oracle.com/technetwork/java/javase/downloads/index.html

我们就进入Oracle官网了,现在java17刚刚出,所以我这里就没有下载17版本,毕竟有些新的特性还有待探索,我们直接点击想要下载的版本,就会自动下载了。

第二步:将压缩包解压到指定目录

这里因为C盘内存不足,我就将其解压到了D盘,就直接生成了一个文件夹(如下图)

java exit cmd窗口_java exit cmd窗口

第三步:关键:配置环境变量

现在一般是W10系统,我们鼠标单击此电脑右键,点击属性,进入窗口,之后选择高级系统设置,你也许会找不到这个选项,因为我开始就没有发现,这里你就直接搜索就好了(如下图)

java exit cmd窗口_oracle_02

之后进入界面,选择右下方的环境变量,进入后我们配置环境只需要两步

  • 在用户变量中新建变量JAVA_HOME,变量的值选择浏览,我们找到我们之前的jdk文件夹,选择
  • 在用户变量中新建变量path,变量值浏览,找到jdk文件夹下面的bin文件夹,选择
第四步:检验是否完成

我们直接输入cmd命令 javac -version;或者直接输入javac,成功就配置完成了

java exit cmd窗口_Java_03

常用的编译命令(非常重要)
  • < Amdmister> dir 路径 //打开文件的目录
  • < Amdmister> D: //打开D盘
  • < Amdmister> cd 路径 //打开某个路径
  • < 路径 > javac demo.java //** java 编译器(Javac.exe,从指定的源文件中读取类和接口的定义,将它们翻译成字节码** //编译Java程序为字节代码文件 (.class文件),Java虚拟机代码
>javac [<选项>] <Java源文件>····
  • < 路径> java demo(类名) //Java解释器(java.exe),启动Java虚拟机,装入指定的类文件并调用其中的main()方法,因为含main的是起始类,使用格式是 (如下) 命令行的类文件名后面的参数传给mian方法的字符串数组参数args。参数的个数决定了字符串数组的大小,第一个参数传入args[1] …args[2],这里和我们每次mian方法里面都要有String[] args相联系
>java [<选项>] <类文件> [<参数> ······]
  • 其他的工具比如Java文档生成器(javadoc.exe) Java调试器(jdb.exe) Java档案文件管理器(jar.exe).Java反汇编器(javap.exe); 我们想要使用这些工具,应该使用命令path 将bin加到查找路径中
path %path%;d:\jdk\bin

为了programmer更好地学习API源码,使用命令

jar xvf src.jar

可以提取到所有的源代码文件

D:\jdk-16\bin 的目录

2021/09/23  10:50    <DIR>          .
2021/09/23  10:50    <DIR>          ..
2021/02/08  11:49            12,224 api-ms-win-core-console-l1-1-0.dll
2021/02/08  11:49            12,224 api-ms-win-core-console-l1-2-0.dll
2021/02/08  11:49            11,712 api-ms-win-core-datetime-l1-1-0.dll
2021/02/08  11:49            11,720 api-ms-win-core-debug-l1-1-0.dll
2021/02/08  11:49            11,720 api-ms-win-core-errorhandling-l1-1-0.dll
2021/02/08  11:49            15,304 api-ms-win-core-file-l1-1-0.dll
2021/02/08  11:49            11,712 api-ms-win-core-file-l1-2-0.dll
2021/02/08  11:49            11,720 api-ms-win-core-file-l2-1-0.dll
2021/02/08  11:49            11,720 api-ms-win-core-handle-l1-1-0.dll
2021/02/08  11:49            12,232 api-ms-win-core-heap-l1-1-0.dll
2021/02/08  11:49            11,712 api-ms-win-core-interlocked-l1-1-0.dll
2021/02/08  11:49            12,736 api-ms-win-core-libraryloader-l1-1-0.dll
2021/02/08  11:49            14,280 api-ms-win-core-localization-l1-2-0.dll
2021/02/08  11:49            12,224 api-ms-win-core-memory-l1-1-0.dll
2021/02/08  11:49            11,720 api-ms-win-core-namedpipe-l1-1-0.dll
2021/02/08  11:49            12,744 api-ms-win-core-processenvironment-l1-1-0.dll
2021/02/08  11:49            14,272 api-ms-win-core-processthreads-l1-1-0.dll
2021/02/08  11:49            12,232 api-ms-win-core-processthreads-l1-1-1.dll
2021/02/08  11:49            11,200 api-ms-win-core-profile-l1-1-0.dll
2021/02/08  11:49            12,224 api-ms-win-core-rtlsupport-l1-1-0.dll
2021/02/08  11:49            11,720 api-ms-win-core-string-l1-1-0.dll
2021/02/08  11:49            13,760 api-ms-win-core-synch-l1-1-0.dll
2021/02/08  11:49            12,232 api-ms-win-core-synch-l1-2-0.dll
2021/02/08  11:49            12,744 api-ms-win-core-sysinfo-l1-1-0.dll
2021/02/08  11:49            12,232 api-ms-win-core-timezone-l1-1-0.dll
2021/02/08  11:49            11,720 api-ms-win-core-util-l1-1-0.dll
2021/02/08  11:49            12,744 api-ms-win-crt-conio-l1-1-0.dll
2021/02/08  11:49            15,816 api-ms-win-crt-convert-l1-1-0.dll
2021/02/08  11:49            12,232 api-ms-win-crt-environment-l1-1-0.dll
2021/02/08  11:49            13,768 api-ms-win-crt-filesystem-l1-1-0.dll
2021/02/08  11:49            12,744 api-ms-win-crt-heap-l1-1-0.dll
2021/02/08  11:49            12,232 api-ms-win-crt-locale-l1-1-0.dll
2021/02/08  11:49            20,928 api-ms-win-crt-math-l1-1-0.dll
2021/02/08  11:49            19,904 api-ms-win-crt-multibyte-l1-1-0.dll
2021/02/08  11:49            64,456 api-ms-win-crt-private-l1-1-0.dll
2021/02/08  11:49            12,736 api-ms-win-crt-process-l1-1-0.dll
2021/02/08  11:49            16,328 api-ms-win-crt-runtime-l1-1-0.dll
2021/02/08  11:49            17,864 api-ms-win-crt-stdio-l1-1-0.dll
2021/02/08  11:49            18,368 api-ms-win-crt-string-l1-1-0.dll
2021/02/08  11:49            14,280 api-ms-win-crt-time-l1-1-0.dll
2021/02/08  11:49            12,224 api-ms-win-crt-utility-l1-1-0.dll
2021/02/08  11:49            25,352 attach.dll
2021/02/08  11:49         1,413,896 awt.dll
2021/02/08  11:49            33,544 dt_shmem.dll
2021/02/08  11:49            32,520 dt_socket.dll
2021/02/08  11:49            59,144 fontmanager.dll
2021/02/08  11:49           549,128 freetype.dll
2021/02/08  11:49           998,664 harfbuzz.dll
2021/02/08  11:49            47,368 instrument.dll
2021/02/08  11:49            47,368 j2gss.dll
2021/02/08  11:49            22,280 j2pcsc.dll
2021/02/08  11:49            73,480 j2pkcs11.dll
2021/02/08  11:49            24,840 jaas.dll
2021/02/08  11:49            41,736 jabswitch.exe
2021/02/08  11:49           103,176 jaccessinspector.exe
2021/02/08  11:49            67,848 jaccesswalker.exe
2021/02/08  11:49            20,232 jar.exe
2021/02/08  11:49            20,232 jarsigner.exe
2021/02/08  11:49           142,600 java.dll
2021/02/08  11:49            46,344 java.exe
2021/02/08  11:49           285,960 javaaccessbridge.dll
2021/02/08  11:49            20,232 javac.exe
2021/02/08  11:49            20,232 javadoc.exe
2021/02/08  11:49           175,368 javajpeg.dll
2021/02/08  11:49            20,232 javap.exe
2021/02/08  11:49            46,344 javaw.exe
2021/02/08  11:49            17,672 jawt.dll
2021/02/08  11:49            20,232 jcmd.exe
2021/02/08  11:49            20,232 jconsole.exe
2021/02/08  11:49            20,232 jdb.exe
2021/02/08  11:49            20,232 jdeprscan.exe
2021/02/08  11:49            20,232 jdeps.exe
2021/02/08  11:49           226,056 jdwp.dll
2021/02/08  11:49            20,232 jfr.exe
2021/02/08  11:49            20,232 jhsdb.exe
2021/02/08  11:49            30,984 jimage.dll
2021/02/08  11:49            20,232 jimage.exe
2021/02/08  11:49            20,232 jinfo.exe
2021/02/08  11:49            84,232 jli.dll
2021/02/08  11:49            20,232 jlink.exe
2021/02/08  11:49            20,232 jmap.exe
2021/02/08  11:49            20,232 jmod.exe
2021/02/08  11:49           101,640 jpackage.dll
2021/02/08  11:49            20,232 jpackage.exe
2021/02/08  11:49            20,232 jps.exe
2021/02/08  11:49            20,232 jrunscript.exe
2021/02/08  11:49            20,232 jshell.exe
2021/02/08  11:49            57,096 jsound.dll
2021/02/08  11:49            20,232 jstack.exe
2021/02/08  11:49            20,232 jstat.exe
2021/02/08  11:49            20,232 jstatd.exe
2021/02/08  11:49            20,232 keytool.exe
2021/02/08  11:49            20,232 kinit.exe
2021/02/08  11:49            20,232 klist.exe
2021/02/08  11:49            20,232 ktab.exe
2021/02/08  11:49           243,976 lcms.dll
2021/02/08  11:49            32,008 le.dll
2021/02/08  11:49            25,352 management.dll
2021/02/08  11:49            20,744 management_agent.dll
2021/02/08  11:49            32,008 management_ext.dll
2021/02/08  11:49           506,120 mlib_image.dll
2021/02/08  11:49           590,632 msvcp140.dll
2021/02/08  11:49            92,424 net.dll
2021/02/08  11:49            65,288 nio.dll
2021/02/08  11:49            21,768 prefs.dll
2021/02/08  11:49            17,160 rmi.dll
2021/02/08  11:49            20,232 rmid.exe
2021/02/08  11:49            20,232 rmiregistry.exe
2021/02/08  11:49            35,592 saproc.dll
2021/02/08  11:49            20,232 serialver.exe
2021/09/23  10:50    <DIR>          server
2021/02/08  11:49           214,280 splashscreen.dll
2021/02/08  11:49            41,224 sspi_bridge.dll
2021/02/08  11:49            43,784 sunmscapi.dll
2021/02/08  11:49         1,011,656 ucrtbase.dll
2021/02/08  11:49           101,672 vcruntime140.dll
2021/02/08  11:49            44,328 vcruntime140_1.dll
2021/02/08  11:49            50,440 verify.dll
2021/02/08  11:49            27,912 w2k_lsa_auth.dll
2021/02/08  11:49            68,872 windowsaccessbridge-64.dll
2021/02/08  11:49            82,696 zip.dll
             120 个文件      9,350,432 字节
               3 个目录 350,024,069,120 可用字节
一个有趣的问题

我现在输入命令 java MyProg good morning ,下面的代码会输出什么呢

public class TestDemo {
	public static void main(String[] args) {
		System.out.println(args[1]);
	}
}

那我们现在来试试我们刚才的问题,注意这个只能使用我们的dos命令,而不能使用eclipse运行

这里我们就是上面的格式,先来分析一下,我们结尾输入的参数就是我们的main方法里的字符数组的值,所以是从0开始的,所以我们的args[0] == goods ; args[1] == morning;所以这里我们的输出结果应该是morning

D:\Java项目\SecondRunStudy\src\FirstChapter>java FirstChapter.TestDemo good morning
morning

程序演示

我前天的博客里面的caculator是一个简单的加减法计算器,我们用这个cmd命令去看看是怎么回事

Microsoft Windows [版本 10.0.19043.1237]
© Microsoft Corporation。保留所有权利。

C:\Users\OMEY-PC>d:

D:>D:\Java项目\Luogu\src\Luogu
‘D:\Java项目\Luogu\src\Luogu’ 不是内部或外部命令,也不是可运行的程序
或批处理文件。

D:>cd D:\Java项目\Luogu\src\Luogu

D:\Java项目\Luogu\src\Luogu>javac Luogu.java

D:\Java项目\Luogu\src\Luogu>java Luogu
错误: 找不到或无法加载主类 Luogu
原因: java.lang.NoClassDefFoundError: Luogu/Luogu (wrong name: Luogu)

这个错误信息是

错误: 找不到或无法加载主类 Luogu
原因: java.lang.NoClassDefFoundError: Luogu/Luogu (wrong name: Luogu)

看起来非常的😵,这里其实是因为我们第一行的打包语句package语句

找不到加载类的解决方法

我们就在javac 和java两个命令后加上选项就可以了,这里就会自己将文件夹也生成

>javac -d . TestDemo.java
    
>java code.TestDemo  //code是文件夹包名

好啦,我们今天的学习内容就是Java的环境配置,当然主要说了我们运行的主要dos命令,这里总会出现麻烦,一定要记清楚命令~~