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盘,就直接生成了一个文件夹(如下图)
第三步:关键:配置环境变量
现在一般是W10系统,我们鼠标单击此电脑右键,点击属性,进入窗口,之后选择高级系统设置,你也许会找不到这个选项,因为我开始就没有发现,这里你就直接搜索就好了(如下图)
之后进入界面,选择右下方的环境变量,进入后我们配置环境只需要两步
- 在用户变量中新建变量JAVA_HOME,变量的值选择浏览,我们找到我们之前的jdk文件夹,选择
- 在用户变量中新建变量path,变量值浏览,找到jdk文件夹下面的bin文件夹,选择
第四步:检验是否完成
我们直接输入cmd命令 javac -version;或者直接输入javac,成功就配置完成了
常用的编译命令(非常重要)
-
< 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命令,这里总会出现麻烦,一定要记清楚命令~~