关于JDK中的总结和基本知识总结
人机交互的图形化界面(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中的总结和基本知识总结的更多相关文章
- Java中实现异常处理的基础知识
Java中实现异常处理的基础知识 异常 (Exception):发生于程序执行期间,表明出现了一个非法的运行状况.许多JDK中的方法在检测到非法情况时,都会抛出一个异常对象. 例如:数组越界和被0除. ...
- 曹工力荐:调试 jdk 中 rt.jar 包部分的源码(可自由增加注释,修改代码并debug)
背景 大家知道,jdk安装的目录下,一般会有个src.zip包,这个包基本对应了rt.jar这个包.rt.jar这个包里面,就放了jdk中,jdk采用java实现的那部分类库代码,比如java.lan ...
- JDK 中的证书生成和管理工具 keytool
参考资料 该文中的内容来源于 Oracle 的官方文档 Java SE Tools Reference .Oracle 在 Java 方面的文档是非常完善的.对 Java 8 感兴趣的朋友,可以直接找 ...
- 深入理解JDK中的I/O
深入理解JDK中的I/O 目 录 java内存模型GCHTTP协议事务隔离级并发多线程设计模式清楚redis.memcache并且知道区别mysql分表分库有接口幂等性了解jdk8稍微了解一下特性 j ...
- C++模拟实现JDK中的ArrayList和LinkedList
Java实现ArrayList和LinkedList的方式采用的是数组和链表.以下是用C++代码的模拟: 声明Collection接口: #ifndef COLLECTION_H_ #define C ...
- JDK中的设计模式
Creational(创建模式) Abstract factory: 创建一组有关联的对象实例.这个模式在JDK中也是相当的常见,还有很多的framework例如Spring.我们很容易找到这样的实例 ...
- JDK中的并发bug?
最近研究Java并发,无意中在JDK8的System.console()方法的源码中翻到了下面的一段代码: private static volatile Console cons = null; / ...
- 观察者模式--java jdk中提供的支持
一.简介 观察者设计模式有如下四个角色 抽象主题角色:把所有对观察者对象的引用保存在一个集合中,每个抽象主题角色都可以有任意数量的观察者.抽象主题提供一个接口,可以增加和删除观察者角色.一般用一个抽象 ...
- JDK中的URLConnection参数详解
针对JDK中的URLConnection连接Servlet的问题,网上有虽然有所涉及,但是只是说明了某一个或几个问题,是以FAQ的方式来解决的,而且比较零散,现在对这个类的使用就本人在项目中的使用经验 ...
随机推荐
- Sqoop 命令
1)list-databases List available databases on a server sqoop list-databases --connect jdbc:db2:// ...
- Linux使用locate命令定位文件
FIND命令 很多Linux用户喜欢使用find命令来查找文件,例如他们通常喜欢这样做: find / -name 'pattern' 确实find的强大功能不仅仅用来查找文件,它能用来定位更加细节的 ...
- 微软企业库5.0学习-Security.Cryptography模块
一.微软企业库加密应用模块提供了两种加密: 1.Hash providers :离散加密,即数据加密后无法解密 2.Symmetric Cryptography Providers:密钥(对称)加密法 ...
- ASP.NET中身份验证的三种方法
Asp.net的身份验证有有三种,分别是"Windows | Forms | Passport",其中又以Forms验证用的最多,也最灵活.Forms 验证方式对基于用户的验证授权 ...
- 从Jetty、Tomcat和Mina中提炼NIO构架网络服务器的经典模式(三)
转载 http://blog.csdn.net/cutesource/article/details/6192163 最后我们再看看NIO方面最著名的框架Mina,抛开Mina有关session和处理 ...
- Intel HAXM
Hardware Accelerated Execution Manager的缩写. intel的硬件加速执行管理器,是一款可以使用英特尔虚拟化技术(VT)加快 Android* 开发速度的硬件辅助虚 ...
- 【Java】C/C++与Java的简单比较
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/5827273.html C/C++: 编译(不同的系统编译出不同的机器码,所以同一 ...
- .NET通用权限系统快速开发框架
DEMO下载地址: http://download.csdn.net/detail/shecixiong/5372895 一.开发技术:B/S(.NET C# ) 1.Windows XP以上 (支援 ...
- 教你50招提升ASP.NET性能(二十四):ORM小窍门
ORM TipsORM小窍门 More and more people are using Object to Relational Mapping (ORM) tools to jump the d ...
- javascript keycode大全【转载】
keycode 8 = BackSpace BackSpace keycode 9 = Tab Tabkeycode 12 = Clearkeycode 13 = Enterkey ...