2.开发环境的搭建

 
下载并安装JDK:www.oracle.com(www.sun.com )上下载,选择好安装路径,安装时会自动附带JRE(有提示).
 
 
  • 设置环境变量
 
1.右击"我的电脑",点击"属性";

2.选择"高级"选项卡,点击"环境变量";

 

JAVA_HOME、Path、classpath的区别: 安装目录以C:\Program Files\Java\为例,版本JDK1.7
  变量     
  变量值    
      作用
  JAVA_HOME
(新建,最好大写)
 C:\Program Files\Java\jdk1.7.0_25
  相当于给java的安装目录取一个变量名, 以便在配置path和classpath时引用,
 同时防止以后修改java的安装路径后又需要.重新配置path和classpath变量值,
 所以如果后两者的变量值使用绝对路径的话,此环境变量可以不用配置.
  PATH(添加) 
;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin   
 
  不同的PATH之间使用“;”分隔,里面指定了一系列的执行路径的列表,所谓执行路径是指操作系统搜索本地可执行文件的目录列表;
  给操作系统的环境添加了指定 java 虚拟机(JVM) 所在目录
     
 CLASSPATH(新建) 
.;%JAVA_HOME%\lib\dt.jar; %JAVA_HOME%\lib\tools.tar;
(注意开头的点号)      
 
 是所有*.class文件的执行路径,java命令执行的时候将利用此路径加载所需要的*.class文件.
 我们通常希望能够在不同的目录下也同样执行其他目录下的*.class文件,这个变量的作用就是实现这个功能.


 补充说明:如果你之前没有配置这类东西,JAVA_HOME和classpath是不存在的,而path属性是本来存在的.后两者是比较折磨人的变量,path配置好以后则可以执行javac\java等命令,
 java命令执行一个类的时候,jvm会寻找通过classpaht配置下的指定路径找到需要的*.class文件并加载,classpath的配置可以使用命令语句:SET CLASSPATH=*.class文件所在的路径 配置。其中“.”属于默认的配置,表示当前的路径;tool.jar,它包括支持JDK的工具和实用程序的非核心类;dt.jar,它是BeanInfo文件的DesignTime归档,BeanInfo文件用来告诉交互开发环境如何显示Java组件以及如何让开发人员根据应用程序自定义它们(本人是至今没弄清楚)
 

打开doc窗口("开始"->;"运行",键入"cmd"),输入  java -version (或者"java","javac"这几个命令)
 
 
 
如果能看到以上的信息,则说明你的环境变量配置已经成功。
 
 

JDK 与 JRE 的区别
JDK:Java Development Kit,Java1.2~1.4的工具箱版本名称为SDK(Software Development Kit,98年至06年之间对JDK的过时的称呼),面向开发人员使用,里面装满了一堆的java类库.
JRE:Java Runtime Enviroment,是指Java的运行环境,不具备编译的功能,是面向Java程序的使用者(可以理解为客户),里面也是一堆用于运行JAVA代码的类库(即jdk编译之后.class的java.exe).
补充说明:如果你在安装JDK的过程中选中了(一般为都选择)JDK所附带的JRE,在你这个JAVA的安装目录中会有两套JRE.
在JDK的安装目录jre文件夹下,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib和起来就称为jre.所以可以这么说:JDK包含JRE,而JRE包含JVM.

JDK路径下的主要文件夹作用:
bin文件夹:编译器和工具(PATH环境变量指向此目录).
     例如:javac.exe--编译命令行指令javac 文件源代码;
          java.exe--执行java程序;
          javadoc.exe--提取程序中的文档注释内容.....
demo文件夹:演示的代码.
lib文件夹:开发工具使用的类库文件.
jre文件夹:java运行环境文件呢.
src.zip: 类库中公共部分的源代码,可以将其解压出来阅读(一般将此包导入IDE来阅读).
docs文件夹:此文件夹就是HTML格式的类库API文档,主页api/index.html.附java1.6的中文Api http://download.oracle.com/technetwork/java/javase/6/docs/zh/api/overview-summary.html

  • 永远的HelloWorld
 
现在配置完毕后,就可以在命令行 里使用 javac xx.java(文件名) 和 java xx(类名) 执行命令了.
 
  1. 使用记事本输出一下内容,文件名保存为HelloWorld.java
 
public class HelloWorld { 
    public static void main(String []args) {
       System.out.println("Hello World"); 
    }
} 


  2. 打开DOC窗口("开始"->;"运行",键入"cmd"),进入目标文件所在的位置,目录跳转等命令请查看文章最后;

  3 . 最后在目标文件的位置下执行

     javac HelloWorld.java

     java HelloWorld

     窗口将出现以下内容: Hello World

 
 

 
一般来讲这些命令只是用于安装Java后,对开发环境进行检测,还有希望通过这些基本的操作步骤,加深开发环境幕后工作的理解,对于实际开发来讲,意义不大。
 
有一个需要注意的情况是:当你写的这个类是在包里的时候,你会发现如果直接执行“java 类名”这个命令,即使你使用“javac 类名.java”这个命令时已经确保给它正常编译且确定本地生成了“xx.class”文件,也会报一个异常;
下面我做个实例模拟这个问题,我用Eclipse工具,新建一个Test010项目,在src目录下新增com.hello.test的包,此包下写一个简单的输出HelloWorld的类,如图所示:
 
之后,使用Eclipse工具直接执行,可以正常输出,但是此时切换到DOC,进入到该文件目录下执行编译命令 java HelloWorld,你会发现有如下错误
 
 
 
发现能正常编译,并且本地正确生成了HelloWorld.class文件,但是在此路径下,执行时却出现了以上的异常NoClassDefFoundError,此异常是当在本地找不到xx.class文件时才会发生的,而本地文件确实存在这个文件。
其实并不是包与文件夹有什么区别造成的这个问题,在这个类的前面,有这么一行

 
 
当你在本地用记事本把这个类文件打开,把package关键字声明的那一行删掉,你会发现此时使用“javac HelloWorld”是可以正常执行的。
这就说明,你定义这个类的时候,类在一个包之下,那么这个类的名字就成了“com.hello.test.HelloWorld”,这个才是完整的类名称。
所以执行包下的类文件时,其编译和执行命令是不同的。
以上面代码为例;
可以使用切换到包路径下执行编译指令,然后执行命令:java com.hello.test.HelloWorld
 
 
另外还有一个编译命令:javac -d .  HelloWorld.java  其中-d表示生成.class文件的目录,根据package定义生成,“.” 表示当前目录。
 
 
 

如果你是重装JDK,当你卸载了之前版本的JDK,并且重新配置了新的正确的环境变量,执行java -version 命令后,会发现很有可能会出现这样的错误
 
 
这个错误本人初学时碰到过,因为一直反复练习如何配置,解决方法:
到 C:\Windows\system32 文件夹下找到下面三个文件,并且删掉!!
 
 
 

  • 几个命令:因为书中有用到,所以做一下整理.
java -version: 查看所安装的JDK的版本信息
cd      :    用于路径跳转,例如:cd /父目录/子目录
mkdir:     创建文件夹
jar xvf ../xx.zip:     解压文件,
其中 ../ 表示源文件所在目录的上一级目录,../../表示源文件所在目录的上上级目录,以此类推.
 .\ 表示当前路径(通常可以省略)  ..\表示下级目录, ..\..\表示源文件所在的下下级目录,以次类推
例如我们现在解压JDK安装路径下的 src.zip 文件解压到 新建的src目录下.
 
 
 
 

posted on 2014-06-02 10:49  AlittleOne  阅读(187)  评论(0)    收藏  举报

导航