Java入门指南

作者: jLody | 来源:发表于2019-04-28 22:57 被阅读4次

    [TOC]

    1. java程序运行过程

    • 程序员编写的java源代码,经过编译后生成与平台无关的.class字节码文件
    • JVM负责执行编译后的.class字节码文件,JVM实现了java跨平台的特性


      image

    2. 主要概念

    • JRE: Java运行时环境(Java Runtime Environment)
    • JVM: Java虚拟机(Java Virtual Machine)
      • 负责执行字节码文件,为编译器提供相同的编程接口
    • JDK: Java标准版开发包(Java SE Development Kit)
      • 一套用于开发Java程序的开发包,提供编译、运行Java程序的各种工具和资源
    • Java的三个版本:
      1. Java SE: 整个Java技术的核心和基础
      2. Java ME: 主要用于控制移动设备和信息家电等有限存储的设备
      3. Java EE: 提供了企业应用的完整解决方案

    3. 安装JDK

    3.1 JDK下载

    访问ORACLE官方网站下载JDK,目前最新版为JDK10

    image
    image
    根据自己使用的操作系统,下载相应的JDK包即可。

    3.2 Windows下安装JDK

    下载Windows系统的JDK安装文件后,直接执行选择自己的安装路径默认安装即可。这里安装路径选为: D:\Programs\work\JDK10,这里安装路径一般不应该包含中文字符及空格,容易出一些奇怪的问题。
    安装完成后需要配置环境变量:

    1. 右键我的电脑->属性->高级系统设置->环境变量
      • 新建JAVA_HOME的环境变量,变量值设置为JDK的安装路径D:\Programs\work\JDK10
      • 编辑系统PATH环境变量,追加变量%JAVA_HOMT%\bin
    2. 打开Windows cmd命令行,输入java -versionecho %JAVA_HOME%检查JDK安装及环境变量设置情况,如图所示
      image

    3.3 Linux下安装JDK

    mkdir /usr/local/jdk10; cd /usr/local/jdk10
    # 上传下载的jdk-10.0.2_linux-x64_bin.tar.gz文件到当前目录
    tar -zxvf jdk-10.0.2_linux-x64_bin.tar.gz
    rm jdk-10.0.2_linux-x64_bin.tar.gz
    mv jdk-10.0.2/* ./
    rmdir jdk-10.0.2
    # 新建jdk10用户,并设置环境变量
    useradd jdk10
    cd ~jdk10; vim .bash_profile
    #.bash_profile文件中追加两行
    export JAVA_HOME=/usr/local/JDK10
    export PATH=$JAVA_HOME/bin:$PATH
    su - jdk10
    java -version #检查JDK安装情况
    

    3.4 JDK各目录详解

    • bin: 存放了JDK的各种工具命令,如javac、java等命令
    • conf: 存放了JDK的相关配置文件
    • include: 存放一些平台特定的头文件
    • jmods: 存放了JDK的各种模块
    • legal: 包含JDK各模块的授权文档
    • lib: JDK工具的一些补充jar包等

    4. 编译并运行java程序

    4.1 编写HelloWold程序

    // D:\windows库\桌面\temp\javaStudy\HelloWorld.java
    public class HelloWorld{
        public static void main(String[] args){
            System.out.println("Hello World!");
        }
    }
    

    4.2 编译java HelloWorld程序

    cd /d D:\windows库\桌面\temp\javaStudy
    javac -d . HelloWorld.java
    

    4.2.1 javac命令的基本用法

    • javac <options> <source files>
      • -d <directory>指定类文件的生成路径
      • -g 生成所有调试信息
      • --release 7 指定使用java7的语法进行编译

    4.3 运行java HelloWorld程序

    cd /d D:\windows库\桌面\temp\javaStudy
    java HelloWorld
    

    4.3.1 java命令的基本用法

    1. 执行类: java [options] <主类> [args...]
      • -cp或-classpath 目录和 zip/jar 文件的类搜索路径, 若没有配置-cp参数,java默认会在当前目录搜索类,若配置了-cp参数,java 只会在指定的路径下搜索需执行的类。
    2. 执行jar包: java [options] -jar <jar 文件> [args...]

    4.3.2 包含外部类依赖java程序的执行

    需特别注意:

    1. 编译主类前需先编译依赖java程序为类
    2. 编译主类时需添加依赖类包所在路径添加到classpath
    3. 运行主类时需添加依赖类包及主类所在路径添加到classpath
      手动编译并运行含依赖类java程序示例:

    文件1: D:\windows库\桌面\temp\javaStudy\depend\DependHello.java

    package work.lody;
    public class DependHello{
        public void depend(){
            System.out.println("work.lody.DependHello: goooooooooood");
        }
    }
    

    文件2: D:\windows库\桌面\temp\javaStudy\DependTest.java

    import work.lody.DependHello;
    public class DependTest{
        public static void main(String[] args){
            System.out.println("sill in DependTest..");
            DependHello dh = new DependHello();
            dh.depend();
        }
    }
    

    针对这两个java源文件,手动编译执行过程如下:

    cd /d D:\windows库\桌面\temp\javaStudy\depend
    javac -d . DependHello.java
    cd ..
    javac -cp D:\windows库\桌面\temp\javaStudy\depend -d . DependTest.java
    java -cp D:\windows库\桌面\temp\javaStudy\depend;. DependTest
    

    5. java程序打包发布方式

    5.1 jar,war,ear

    java程序一般打包成jar(java archive file)后进行发布,jar文件有以下特点:

    1. 格式与zip压缩包格式完全相同
    2. 包含名为META-INF/MANIFEST.MF的清单文件
    3. 添加jar文件到CLASSPATH环境中后,java虚拟机会在内存中解压这个jar包,并将当成一个路径进行处理。即java可运行或导入jar包里的类。
      另外,java web项目一般打包成war(web archive fiel)包,企业应用项目一般打包成ear(enterprise archive file)包。war包、ear包格式及约定与jar完全相同。

    5.2 清单文件MANIFEST.MF

    清单文件由创建jar包时的系统自动创建,其格式为:
    key:<空格>value
    清单文件有以下几点要求:

    1. 每行定义一个key-value对,key前不能有空格
    2. key后必须为英文:+一个空格
    3. 文件开头不能存在空行
    4. 文件必须以空行作为结束
      特别的包含key为Main-Class,且value为类的的jar包为可执行jar包。可直接通过java -jar test.jar [args]执行jar包。
      若需要执行不带Main-Class的jar包,可通过java命令将jar添加到CLASSPATH路径,并指定主类执行:
      java -cp test.jar test.Test [args]

    5.3 jar常用命令简介

    1. 将dist路径下全部内容生成一个jar: jar cf test.jar -C dist/ .
    2. 将test目录下所有内容生成一个可执行jar: jar cvfe test.jar test.Test test
    3. 查看jar包内容: jar tf test.jar
    4. 将jar解压缩到当前目录: jar xf test.jar
    5. 更新jar文件: jar uf test.jar Hello.class

    相关文章

      网友评论

        本文标题:Java入门指南

        本文链接:https://www.haomeiwen.com/subject/jvvsnqtx.html