您的位置:首页 > 编程语言 > Java开发

java SE运行环境在windows下的配置和命令行方式编译与运行java程序

2014-04-24 17:02 489 查看
大家好,这是我csdn的第一篇文章,非常粗浅和入门,抛砖引玉了。本人本科是软件工程,如今是软件工程小硕一枚,爱好互联网行业,喜欢java语言……希望我的一系列文章和分享能给我和广大网友带来快乐和价值。因为一直是科班出身,东西时间长了很容易混淆和忘记,比如一些算法,java的一些语法细节,一些设计模式,汇编,linux等等吧。故想起了csdn开博客的方式来记录和复习之前的知识,吐槽,技术和借此机会分享给互联网这个提供我未来饭碗的行当。
如果有错误和垃圾的地方,请大家不吝赐教!thanks!
开始的时候,先来了解下java的平台无关性,java只有它的安装过程和编译命令与操作系统有关系,如果我们安装环境成功,那么java的运行和调试等就无需在关注环境,这是系统无关性的一个主要优势。

一些术语;

JDK; 是整个JAVA的核心,包括JavaRuntime Envirnment,一堆Java工具(javac/java/jdb等)和Java基础的类库。

JRE;所有的Java程序都要在JRE下才能运行。包括JVM和JAVA核心类库和支持文件。与JDK相比,它不包含开发工具——编译器、调试器和其它工具。这个很好理解,因为不是每个人都需要编译器的!

JVM;是JRE的一部分,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM的主要工作是解释自己的指令集(即字节码)并映射到本地的 CPU 的指令集或 OS 的系统调用。

总的来说范围;就是jdk > jre > jvm

想掌握甚至精通一门编程语言或者设计思想,除了深入的理论和研究,必须结合实践,也就是俗称的敲代码!那么首先我们先配置环境,而安装java开发工具包—jdk是开始就必要的,至于如何下载和安装,请自行去oracle(已经收购了sun)的官网下载,或者百度随便搜索下一大把的安装包。

下图是jdk的目录;



注意;windows下的文件路径不要带中文!

bin文件夹里包含编译器和解释器等一系列工具,include包含本地方法的文件,jre包含java运行环境文件,lib包含类库文件,src(本来是压缩包的src.zip格式),解压之后是java类库中公共部分的源代码(对了,我的jdk版本是jdk1.7.0_45)。

然后设置三个环境变量:JAVA_HOME, PATH 和 CLASSPATH(不区分大小写);

JAVA_HOME:指向JDK的安装目录(也就是我们解压后的文件夹的目录)。

PATH:指向JDK安装目录下的\bin目录。

CLASSPATH:指向Java程序的类路径。

(1)java环境变量的配置,为了配置环境变量,开始之前先安装jdk,成功之后对于jdk的bin目录要添加到path路径中,为什么这样做呢?

因为win操作系统在path(已经存在)路径中搜索本地的可执行文件的目录列表,当然对于不同的os(操作系统),这个路径很有可能不同。这样的话,我们必须要把\jdk1.7.0_45\bin的目录添加到可执行路径中去。而bin中有java编译器和解释器等工具,所以必须要在可执行目录中。bin里的javac.exe用于调用java的编译器,java.exe用于调用jvm。

记得初学java的时候,我发现只是设置path的话,如果运行一些稍微复杂的代码(比如需要调用java自带的类),就会失败,后来发现就是因为在程序运行时,会在jdk安装目录下的lib文件夹里寻找需要的java类,因为jdk的lib目录下放有Java自己的类库,你的程序中肯定会用到Java自带的类。最好是开始的时候就设置,否则后期用起来很麻烦。而JAVA_HOME完全就是为了方便修改和设置,体现了软编码的思想。当然jre里也有lib文件夹,里面也存放着java的类。这两个lib文件夹的区别,有待后来考察。

可以这样做,我的电脑—>属性->“高级”->环境变量。



在“系统变量”处添加JAVA_HOME,并将JDK的安装路径(本机的)写到变量值里面,用同样的方法创建CLASSPATH环境变量,其中变量值是:" .;%JAVA_HOME%\lib"。%JAVA_HOME% 就是我们上一步中设置的环境变量的值,也就是JDK的安装目录。使用分号将两个路径隔开。前面的”.”表示当前目录。这样设置之后,应用程序会先从当前目录寻找Java类,如果在当前路径下没有找到,则去jdk的lib下寻找。

我们要配的第三个环境变量是PATH(这个才是最最关键的),这个变量已经存在于系统中了,我们只需要在“系统变量“中找到它,然后在后面加上JDK安装目录下的\bin目录,加上:;%JAVA_HOME%\bin 
即可。这样,系统的环境变量就设置好了。测试JDK是否安装成功,在命令行中输入java –version查看JDK的版本号,如出现版本信息,说明JDK已经正确的配置好了。



有时候会等数十秒,才出信息。

(2)安装源代码包和文档等

要想成为一个合格的码农,查看api文档,源代码等是必修课。java所有公共类库的源代码文件在jdk的src.zip包中,。故还需要下载一个文档压缩文件;jdk-version-doc.zip,解压放到jdk目录下即可。养成查看java源文件和类库文档的习惯!即src和docs文件夹。

(3)dos下的常用命令行的使用

win+R调出开始菜单里的搜索窗口,再cmd调出命令行窗口,学会使用help命令,随时查看命令的使用方法。

------------------------------------------------------------------------------------------------

C:\Users\Administrator>help

有关某个命令的详细信息,请键入 HELP 命令名

ASSOC          显示或修改文件扩展名关联。

ATTRIB         显示或更改文件属性。

BREAK          设置或清除扩展式 CTRL+C 检查。

BCDEDIT        设置启动数据库中的属性以控制启动加载。

CACLS          显示或修改文件的访问控制列表(ACL)。

CALL           从另一个批处理程序调用这一个。

CD             显示当前目录的名称或将其更改。

CHCP           显示或设置活动代码页数。

CHDIR          显示当前目录的名称或将其更改。

CHKDSK         检查磁盘并显示状态报告。

CHKNTFS        显示或修改启动时间磁盘检查。

CLS            清除屏幕。

CMD            打开另一个 Windows 命令解释程序窗口。

COLOR          设置默认控制台前景和背景颜色。

COMP           比较两个或两套文件的内容。

COMPACT        显示或更改 NTFS 分区上文件的压缩。

CONVERT        将 FAT 卷转换成 NTFS。您不能转换

               当前驱动器。

COPY           将至少一个文件复制到另一个位置。

DATE           显示或设置日期。

DEL            删除至少一个文件。

DIR            显示一个目录中的文件和子目录。

DISKCOMP       比较两个软盘的内容。

DISKCOPY       将一个软盘的内容复制到另一个软盘。

DISKPART       显示或配置磁盘分区属性。

DOSKEY         编辑命令行、调用 Windows 命令并创建宏。

DRIVERQUERY    显示当前设备驱动程序状态和属性。

ECHO           显示消息,或将命令回显打开或关上。

ENDLOCAL       结束批文件中环境更改的本地化。

ERASE          删除一个或多个文件。

EXIT           退出 CMD.EXE 程序(命令解释程序)。

FC             比较两个文件或两个文件集并显示它们之间的不

FIND           在一个或多个文件中搜索一个文本字符串。

FINDSTR        在多个文件中搜索字符串。

FOR            为一套文件中的每个文件运行一个指定的命令。

FORMAT         格式化磁盘,以便跟 Windows 使用。

FSUTIL         显示或配置文件系统的属性。

FTYPE          显示或修改用在文件扩展名关联的文件类型。

GOTO           将 Windows 命令解释程序指向批处理程序

               中某个带标签的行。

GPRESULT       显示机器或用户的组策略信息。

GRAFTABL       启用 Windows 在图形模式显示扩展字符集。

HELP           提供 Windows 命令的帮助信息。

ICACLS         显示、修改、备份或还原文件和

 目录的 ACL。

IF             在批处理程序中执行有条件的处理过程。

LABEL          创建、更改或删除磁盘的卷标。

MD             创建一个目录。

MKDIR          创建一个目录。

MKLINK         创建符号链接和硬链接

MODE           配置系统设备。

MORE           逐屏显示输出。

MOVE           将一个或多个文件从一个目录移动到另一个目录

OPENFILES      显示远程用户为了文件共享而打开的文件。

PATH           为可执行文件显示或设置搜索路径。

PAUSE          停止批处理文件的处理并显示信息。

POPD           还原由 PUSHD 保存的当前目录上一次的值。

PRINT          打印一个文本文件。

PROMPT         改变 Windows 命令提示。

PUSHD          保存当前目录,然后对其进行更改。

RD             删除目录。

RECOVER        从损坏的磁盘中恢复可读取的信息。

REM            记录批处理文件或 CONFIG.SYS 中的注释。

REN            重新命名文件。

RENAME         重新命名文件。

REPLACE        替换文件。

RMDIR          删除目录。

ROBOCOPY       复制文件和目录树的高级实用程序

SET            显示、设置或删除 Windows 环境变量。

SETLOCAL       开始用批文件改变环境的本地化。

SC             显示或配置服务(后台处理)。

SCHTASKS       安排命令和程序在一部计算机上按计划运行。

SHIFT          调整批处理文件中可替换参数的位置。

SHUTDOWN       让机器在本地或远程正确关闭。

SORT           将输入排序。

START          打开单独视窗运行指定程序或命令。

SUBST          将驱动器号与路径关联。

SYSTEMINFO     显示机器的具体的属性和配置。

TASKLIST       显示包括服务的所有当前运行的任务。

TASKKILL       终止正在运行的进程或应用程序。

TIME           显示或设置系统时间。

TITLE          设置 CMD.EXE 会话的窗口标题。

TREE           以图形显示启动器或路径的目录结构。

TYPE           显示文本文件的内容。

VER            显示 Windows 的版本。

VERIFY         告诉 Windows 验证文件是否正确写入磁盘。

VOL            显示磁盘卷标和序列号。

XCOPY          复制文件和目录树。

WMIC           在交互命令外壳里显示 WMI 信息。

有关工具的详细信息,请参阅联机帮助中的命令行参考。cls是清屏的!

--------------------------------------------------------------------------------------------------

重点说下cd方法,



基本就需要这个命令了。别的需要再去临时help,so easy……



此时是编译,再打开当前文件,D:\Program Files\Java\jdk1.7.0_45\CoreJavaBook\v1ch02\Welcome查看发现多了一个文件



.class文件,z这里面存储的就是java字节码文件。然后



运行成功了!

整个过程就是;javac是一个java编译器,把源文件.java文件编译成了字节码文件,并发送给了jvm(java virctual machine),由jvm来执行此字节码文件。

需要注意,javac 运行时需要带文件的后缀,而java命令不需要。并且注意大小写!还有一种特别的问题,就是有时候windows会隐藏文件后缀,这时候及其容易出错,类似出现.java.tet的文件,那样肯定不行的。还有比如,出现无法找打类的错误,是不是classpath路径被临时修改了?这时候可以set classpath查看路径,使用set classpath=,来临时设置。或者是语法不兼容的问题等等。

对于问题的解决,无他,就是需要多多练习,多多做项目,多多思考,多多涉猎和总结了。

博客转载请注明出处;http://blog.csdn.net/sharp_allen/article/details/24385333
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息