开发一个软件,需要经过编辑、编译、调试、运行几个过程。

编辑:使用编程语言编写程序代码的过程。

编译:如上一节所讲,就是将编写的程序进行翻译。

调试:程序不可能一次性编写成功,编写过程中难免会出现语法、语义上的错误,调试就是找出程序中存在的错误。

运行:在开发过程中需要反复多次运行程序,已检查程序是否按照预定目标执行。

软件开发人员需要在自己电脑中安装、配置相应的软件工具,才能够进行编辑、编译、调试、运行操作。除此之外,可能还会安装一些文档、范例。这种辅助开发某一类软件的相关文档、范例和工具的集合,叫做Software Development Kit,即软件开发工具包,简称为SDK。

不同的编程语言,开发工具当然是不一样的。对于Java开发人员来说,其软件开发工具包有一个专门的名称,叫做JDK(Java Development Kit)。JDK中主要包含:

  • JRE:全称是Java Runtime Enviroment,即Java运行环境。
  • Java基础类库:是 Java 语言提供的已经实现的标准类的集合。简单说就是一些写好的程序代码,这些代码提供各种功能,比如从键盘获取输入、读取硬盘上的文件等输入/输出功能,日期、哈希表等数据结构类型,窗口、对话框、菜单等图形界面功能……,开发人员不必自己再写了,直接调用即可。
  • l  一批用于Java开发的组件,如:
    •  javac:编译器,将后缀名为.java的源代码编译成后缀名为“.class”的字节码
    •  java:运行工具,运行.class的字节码
    •  jar:打包工具,作用是将相关的类文件打包成一个文件
    •  javadoc:文档生成器,利用此工具可根据源代码里的注释自动生成程序说明文档,要求是注释需符合规范。
    • ……

从上面介绍可以看到,如果不是开发人员,就没必要安装JDK了,而只需要安装JRE就可以运行Java程序了。对于开发者而言,除了要运行Java程序,还需要一些开发工具,所以就必须安装JDK了。有关安装JDK的方法,请参考下面几个文件完成JDK的安装:

安装完JDK,其实我们就可以开发Java程序了:

l  第一步,使用记事本或其它纯文本编辑工具编写java程序;

l  第二部,使用JDK中的javac.exe工具编译java程序;

l  第三步,使用JDK终端java.exe工具运行程序。

这种文本编辑工具+手动编译运行的编程方式是值得推荐给初学者的,这能够让你更深入理解程序的编译运行过程,也有助于对JDK的理解。这里有一个使用NotePad++编写代码,使用javac.exe和java.exe工具编译运行程序的详细步骤供大家参考:”Java Hello World源代码notepad++版“。

为了使程序开发调试更方便快速,人们开发了一种名称为IDE(Integrated Development Environment,集成开发环境)的应用软件,它将编写代码、编译、调试、运行等功能集成在一个统一的工具界面中,很多操作都只需要简单地点下鼠标就完成了。当你使用手动编译运行程序一段时间,理解了程序运行的基本原理后,可以转而使用IDE工具来开发java程序了。常用的java IDE有Eclipse、Intellij IDEA等,还有一些相对小众的IDE如BlueJ、DrJava等。

细心的读者可能会看到,javac是java编译器,为什么编译之后的结果是.class为后缀的文件,运行java程序的时候,还需要一个名字叫做java的工具来执行.class文件呢?为什么不像c语言那样,编译后得到一个.exe文件,直接就可以运行?我们将在下一节中解释这个问题。

什么是软件开发工具包(SDK)的更多相关文章

  1. 术语-软件-软件开发:SDK(软件开发工具包)

    ylbtech-术语-软件-软件开发:SDK(软件开发工具包) 软件开发工具包(缩写:SDK.外语全称:Software Development Kit)一般都是一些软件工程师为特定的软件包.软件框架 ...

  2. .net core 2.2 部署CentOS7(4)CentOS7下载并安装.NET SDK(软件开发工具包)

    目录: .net core 2.2 部署CentOS7(1)安装虚拟机 .net core 2.2 部署CentOS7(2)给虚拟机安装CentOS7 .net core 2.2 部署CentOS7( ...

  3. macOS 下安装SDKMAN 软件开发工具包管理器

    SDKMAN 软件开发工具包管理器的安装非常简单,只需要打开终端,执行: $ curl -s "https://get.sdkman.io" | bash 就OK了,输出类似如下: ...

  4. SDKMAN 软件开发工具包管理器

    SDKMAN 是用来在类Unix 系统中管理多个版本的开发环境的工具.提供命令行接口来安装.切换.删除.列出候选版本. SDKMAN!是在大多数基于Unix的系统上管理多个软件开发套件的并行版本的工具 ...

  5. 顺丰丰桥软件开发工具包 (.NET)

    丰桥 - 一站式对接服务平台, 打通客户与顺丰系统之间的信息流, 实现物流供应链一体化. 随着一个电商项目和顺丰合作, 信息流对接就是我们开发的事了. 顺丰通过丰桥提供了一些开放接口, 不过丰桥提供的 ...

  6. C#入门到精通系列课程——第1章软件开发及C#简介

    ◆本章内容 (1)了解软件 (2)软件开发相关概念 (3)认识.NET Framework (4)C#语言 (5)Visual Studio 2017 ◆本章简述 软件在现代人们的日常生活中随处可见, ...

  7. 自己动手做AI:Google AIY开发工具包解析

    2018年国际消费性电子展(CES)上,最明显的一个趋势是Amazon与Google的语音技术进驻战,如AmazonAlexa进驻到Acer笔电内,Google Assist进驻到KIA汽车内,其他如 ...

  8. 【DSP开发】【计算机视觉】TI 视觉软件开发套件ADAS

    关键字:TI  视觉软件开发套件  ADAS 日前,德州仪器 (TI) 宣布推出其视觉软件开发套件(SDK),从而为开发人员提供了一款灵活的框架.一组丰富齐全的硬件设备驱动程序和一套适用的开发工具,可 ...

  9. AWS的开发工具包和设备SDK开发工具包

    一.开发工具包 二.设备sdk开发工具包

随机推荐

  1. ambari 安装HDP3.0.1后,启动服务的问题记录

    HDP的ambari集成安装工具真的是比ClouderaManager差上那么一点儿,不说安装的时候就麻烦,即使软件安装包已成功安装,也不意味着可以正常使用了,启动HDP集群过程中还会有不少的错误! ...

  2. thinkphp5 composer

    前提:已安装composer 1.安装包 https://packagist.org/?query=thinkphp ,tp的各种安装包 2.安装 //安装命令, composer create-pr ...

  3. Java接口的幂等性设计

    转载:https://www.cnblogs.com/jack87224088/p/8688948.html 在微服务架构下,我们在完成一个订单流程时经常遇到下面的场景: 一个订单创建接口,第一次调用 ...

  4. IDEA下搭建Shiro-web环境,总是报BasicDataSource,classnotfound;问题解决

    进入报错跟踪,查看加载的classloader中没有dbcp相关jar包 猜测结果是,jar没有被加载,但是maven引用没错,而且也能找到对应的class 后来又查看IDEA配置中,相关jar也引入 ...

  5. numpy学习之创建数组

    1.使用array函数创建数组 import numpy as np ndarray1 = np.array([1, 2, 3]) array([1, 2, 3]) ndarray2 = np.arr ...

  6. LeetCode - 868. Binary Gap

    Given a positive integer N, find and return the longest distance between two consecutive 1's in the ...

  7. Postman 接口测试

    使用场景: 开发接口的时候需要快速调接口的时候 测试的时候需要非常方便的调用接口.通过不同的参数去测试接口的输出 这些接口调用是需要保存下来反复运行的 在运行过程中,如果有断言,检查点就更好了第三方 ...

  8. centos7邮件服务器SSL配置

    在上篇文章centos7搭建postfix邮件服务器的搭建中我们没有配置SSL,接下来我们在这篇文章中讲讲centos7邮件服务器SSL配置. 1. 创建SSL证书 [root@www ~]# cd ...

  9. Linux上传文件与执行

    ls ——查看文件夹 mkdir——新建文件夹 cd:——进入文件 nohup python3 文件名.py & ——让代码在后台运行 ps -aux | grep 文件——查看进程 ps-a ...

  10. day13 十三、迭代器、生成器、枚举对象

    def my_generator(): print(1111) yield '结果1' print(2222) yield '结果2' print(3333) yield '结果3' print(44 ...