人机交互的图形化界面(GUI)

命令行方式(CLI  command line interface)

JDK有不同的版本(linux,mac os, windows)

Java 的跨平台性。

软件放到系统中,系统中应该解析该软件的程序。

为什么用一个c++写的软件可以再windows中直接运行呢?

因为Windows本身就是用c++和c写的、它本身内置了c++的解析器(解析程序)。

Windows是微软的产品,微软对自己语言编写的软件都要支持。

不见得对其他 语言支持(java),就需要一个jvm(虚拟机(在windows机器上虚拟出来的)——能解析java语言的解析器)

JRE:JVM+类库

JDK:JRE+java的开发工具

Exe文件有的是GUI(有图形化界面),有的是命令行程序(双击一闪而过)。

像这种exe文件,就可以通过cmd模式下,把cmd中的目录定位在该exe文件中的位置,然后输入该exe文件的名字按enter。

可以不写exe文件的后缀,因为是exe—可执行文件。(javac.exe)

命令行方式出现的早,图形化能做的,命令行也都行。

图形化仅仅是命令行方式的封装。

Windows就是因为图形化火的,更多的傻瓜都可以用。Linux一开始走的是命令行操作,后来才弄成了gui方式。

Cmd模式下进入一个文件夹

命令:cd + 文件夹名字。

假如JDK文件夹下有两个子文件夹(jdk1.8.0和jdk1.7.0)可以直接cd jdk* 就可以了,就会进入jdk1.7.0,(这种模式下自动匹配排列顺序第一个的文件夹)

cd.. (两个点号)就是返回上一级目录的意思。

Cd/(反斜线)就是返回根目录的意思。

有时候在cmd模式下直接输入“C:”不会进入c盘的根目录,而是进入C盘的缓存目录。

例如“C:\Users\kongxiaohan>”  而要切换到c盘的根目录就直接cd/  就可以了。

Md 命令是 make directory 新建目录(文件夹)

Rd命令是remove directory  删除目录(文件夹)

删除所有的文件(一个文件夹下的所有子文件夹)“rd /s”

可视化GUI操作其实都是调用的这些命令。

Windows原理:windows当中删除文件夹,如果文件夹中有内容的话,要先把该外层文件夹中的内容全部删除干净,保证该文件夹是空的,然后才能把这个文件夹删除。

早期的磁盘操作系统,怕你误删文件,要你确认,真的里面的东西都删光了,才能删除,否则直接删除外面的文件夹的话很容易造成文件的误删除。

在删除文件夹的GUI操作中,也是先把里面的先删除干净,再删除外边的。

如果你删除的一个包含很多文件的外文件夹,右键删除,然后会有一个正在删除的对话框,在有对话框的过程中你点击取消,看剩下的文件的就会发现“删除的过程是从里向外删除的”

删除文件用del命令

删除一个文件(file.text)del  file.text

删除所有的text文件结尾的文件 del *.text

删除所有的文件 del *.*

或者 del *  (*是通配符)

在dos里进行文字编辑都可以,只是命令比较复杂。

退出dos 是exit命令。

最重要记住的是help命令。

如果想知道“cd”命令的用处就敲“ help cd ”

环境变量的设置

解释下环境变量的作用,在cmd下的任何路径下输入notepad都可以打开记事本,为什么在没有notepad.exe 程序文件路径的情况下依然能够打开记事本呢?

这就是配置环境变量的作用

右键“我的电脑”找到环境变量。。。。

下面是我的电脑中“path”环境变量的内容:

%SystemRoot%\system32;

%SystemRoot%;

%SystemRoot%\System32\Wbem;

%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;

C:\Program Files\EmEditor

当一个路径下没有notepad文件时,就会去path环境变量中的路径中去需找。

所以在配置java环境变量时候就要把javac.exe文件的路径加入到该环境变量中。

这样在用cmd执行java文件的时候输入javac命令就可以顺利的执行。

上面中对java环境变量的配置有一定的局限性:

下面讲解下为什么要有新建一个JAVA_HOME的环境变量

就是因为jdk的安装录路径:C:\Program Files\Java\jdk1.7.0\bin;

有可能会变化的,也有可能文件夹名称发生变化,但是bin文件夹基本上是不会变的。

所以把变化的单独存放在一个变量里就是JAVA_HOME。

Windows 要求必须用%放在该变量的两侧。%JAVA_HOME%。这样如果jdk路径变化或者其中的文件夹名称发生变化的时候就可以不用更改path的内容(毕竟path中是很多重要的系统变量,一旦更改会造成不变要的麻烦)

只需要更改下JAVA_HOME的值就可以了。

环境变量中的临时变量设置

你现在要用别人的电脑进行java程序的开发,(不要去修改别人电脑的环境变量)。

可以把你的jdk目录放到移动硬盘或者优盘上,插入他的电脑,然后在其电脑上进行一些临时环境变量的设置。

把写的java文件放在自己的移动硬盘上,拔走之后再该机器上什么都留不下。

用命令行方式进行配置。

用set命令(显示,设置,删除环境)

输入set回车是所有的计算机的环境变量。

命令cls是清屏的意思。

①     查看环境变量的命令 set path

②     修改环境变量的命令 set path = hahaha

Set path

(这种设置仅仅在当前窗口有效,关闭cmd就不会有了,这就叫临时变量设置)

③     删除环境变量 set path = (空)

如果想用别人机器已有的环境变量

在已经有jdk6.0环境变量的基础上加上jdk7.0的环境变量怎么办?

输入这中命令C:\>set path = E:\java\jdk1.7.0_03\bin;%path%

如果path中有jdk6.0的变量路径了,到底是先执行那个,肯定是先执行7.0的,因为在前面。(从头开始查找)

尽量将环境变量配置到头上,因为系统或者数据库中会用到java中的部分的工具,而且内置了java工具,如果配置到path尾部的话,就会先运行其他java工具,就不是你的jdk了。尽量先找自己先定义的那个。

一个文件叫123.java

内容是

Class Demo{

}

Javac 123.java 会生成Demo.class文件

然后输入命令

Java Demo (注意这里不是输入java 123.java 因为java只能执行class文件,不需要在再上后缀名,而且是class文件不是java文件)

运用Javac启动一个编译程序,对java文件进行检查,看看是否有哪些地方写错,检查源代码的正确性。

运行程序中遇到错误,应该反映是“机会来了”提升自己的机会来了,增长自己经验值的机会来了。从第一个错误开始解决,java经常出现连锁错误。解决了第一个以后的可能都会跟着解决。

Java命令底层对应的是启动虚拟机。

Javac命令并不需要启动虚拟机,仅仅是编译(启动的是编译器)。

Java 中的设置临时classpath变量。

比如说有两个路径:

第一个:E:\java

第二个:C:\myclass

在第一个里面有一个java文件叫做Demo.java  没有对应的class文件

在第二个里面有一个Demo.class

如果你想在cmd模式下在不切换路径的下运行第二个里面的class文件就需要进行classpath的设置

Set classpath= C:\myclass

这样在cmd模式下输入java Demo就会运行第二个路径下的class文件。

如果设置set classpath=C:\myclass;(比上面的在最后一段加了一个分号)这种设置java虚拟机就会先寻找设置的路径,如果找不到再去寻找当前的路径。

不过不推荐这样设置,因为不利于程序的找错调试。

如果需求是既要运行当前目录的程序又要运行指定路径下的程序,对路径进行设置。

Set classpath=.;C:\myclass

就可以了。其中点号“.”代表当前路径。

上面的路径中C:\myclass 中可以用classpath变量代替(通过我的电脑→环境变量)

然后再用cmd命令设置

Set classpath =.;%classpath%

关于JDK中的总结和基本知识总结的更多相关文章

  1. Java中实现异常处理的基础知识

    Java中实现异常处理的基础知识 异常 (Exception):发生于程序执行期间,表明出现了一个非法的运行状况.许多JDK中的方法在检测到非法情况时,都会抛出一个异常对象. 例如:数组越界和被0除. ...

  2. 曹工力荐:调试 jdk 中 rt.jar 包部分的源码(可自由增加注释,修改代码并debug)

    背景 大家知道,jdk安装的目录下,一般会有个src.zip包,这个包基本对应了rt.jar这个包.rt.jar这个包里面,就放了jdk中,jdk采用java实现的那部分类库代码,比如java.lan ...

  3. JDK 中的证书生成和管理工具 keytool

    参考资料 该文中的内容来源于 Oracle 的官方文档 Java SE Tools Reference .Oracle 在 Java 方面的文档是非常完善的.对 Java 8 感兴趣的朋友,可以直接找 ...

  4. 深入理解JDK中的I/O

    深入理解JDK中的I/O 目 录 java内存模型GCHTTP协议事务隔离级并发多线程设计模式清楚redis.memcache并且知道区别mysql分表分库有接口幂等性了解jdk8稍微了解一下特性 j ...

  5. C++模拟实现JDK中的ArrayList和LinkedList

    Java实现ArrayList和LinkedList的方式采用的是数组和链表.以下是用C++代码的模拟: 声明Collection接口: #ifndef COLLECTION_H_ #define C ...

  6. JDK中的设计模式

    Creational(创建模式) Abstract factory: 创建一组有关联的对象实例.这个模式在JDK中也是相当的常见,还有很多的framework例如Spring.我们很容易找到这样的实例 ...

  7. JDK中的并发bug?

    最近研究Java并发,无意中在JDK8的System.console()方法的源码中翻到了下面的一段代码: private static volatile Console cons = null; / ...

  8. 观察者模式--java jdk中提供的支持

    一.简介 观察者设计模式有如下四个角色 抽象主题角色:把所有对观察者对象的引用保存在一个集合中,每个抽象主题角色都可以有任意数量的观察者.抽象主题提供一个接口,可以增加和删除观察者角色.一般用一个抽象 ...

  9. JDK中的URLConnection参数详解

    针对JDK中的URLConnection连接Servlet的问题,网上有虽然有所涉及,但是只是说明了某一个或几个问题,是以FAQ的方式来解决的,而且比较零散,现在对这个类的使用就本人在项目中的使用经验 ...

随机推荐

  1. Gym 100507L Donald is a postman (水题)

    Donald is a postman 题目链接: http://acm.hust.edu.cn/vjudge/contest/126546#problem/L Description Donald ...

  2. 图文讲解:iOS App提交流程

    原文:http://www.toceansoft.com/ios/3287.jhtml 一.证书的导出 1.1.前期工作 首先你需要有一个苹果的开发者帐号,一个Mac系统. 如果没有帐号可以在打开ht ...

  3. Failed to execute query: Duplicate entry '0' for key 'PRIMARY'

    今天在做php登陆和登出会插入数据到log表中,,结果报错了:如下: Failed to execute query: Duplicate entry '0' for key 'PRIMARY' SQ ...

  4. 文件频繁IO能有多大的差别

    测试文件写同样大小的文件,单次记录较小和单次记录较大能有多大的性能差别. 最终写入同样大小的文件,小记录需要写入10w次,大记录需要写入1w次,看下最终的性能报告

  5. 插入三层treeview代码

    #region treetView加载 private void treeViewLoad() { DataView dv = navds.tbSiteKind.AsDataView(); treeV ...

  6. Docker基本命令

    1.搜索Docker镜像 docker search <镜像名> 2.获取镜像 docker pull <镜像名> 3.查看本地镜像 docker images 4.删除镜像 ...

  7. 多线程访问winform控件出现异常的解决方法

    一.  多线程访问winform控件出现异常的解决方法 1.  问题描述<1> 如果创建某控件的线程之外的其他线程试图调用该控件,则会引发一个 InvalidOperationExcept ...

  8. mysql中utf8_bin、utf8_general_ci、utf8_general_cs编码区别

    在mysql中存在着各种utf8编码格式,如下表: 1)utf8_bin 2)utf8_general_ci 3)utf8_general_cs utf8_bin将字符串中的每一个字符用二进制数据存储 ...

  9. cmp排序hdoj 1106排序

    上班之余抽点时间出来写写博文,希望对新接触的朋友有帮助.今天在这里和大家一起学习一下cmp排序 /*标题还是比拟的水吧,但是花的时间还是比拟的多,心不够静*/ #include <iostrea ...

  10. Spring aop实现方式记录

    原文地址:http://blog.csdn.net/moreevan/article/details/11977115 Spring提供了两种方式来生成代理对象: JDKProxy和Cglib,具体使 ...