Posts

Showing posts from November, 2018

Confluence 6 空间标识

Image
每一个 Confluence 空间都有一个 空间标识( space key ),这个空间标识是简短并且是唯一的,这个标识被用来构建到空间的 URL 中。 当你创建一个站点空间,Confluence 将会为你建议一个使用的空间 Key。你也可以使用你自己认为更容易记住的空间 Key。 例如,你可能希望为你的市场部的空间使用标识 MARKETING。然后你可以使用下面的 URL 直接定位到 -  http://<yoursite>/display/marketing  你市场部使用的空间中。  在个人空间中,总是使用你的用户名为你的个人空间标识的。 选择一个空间标识 每一个空间标识: 必须是唯一的 可以包含有字母和数字(a-z, 0-9) 最长可以使用 255 个字符串。  当你成功创建你的空间后,你不能对你的空间标识进行修改。在选择空间标识的时候请慎重! https://www.cwiki.us/display/CONF6ZH/Space+Keys

Confluence 6 从一个模板中创建一个空间

Image
Confluence 已经存储了一系列的模板,这些模板被称为 空间蓝图( space blueprints ),这模板具有一些自定义的主页,边栏或者可能有蓝图页面或一些示例内容来帮助你开始使用 Confluence。 这个页面是有关空间的蓝图的。你可以查看  Blueprints  页面中的内容来查看如何创建独立的页面。  你的 Confluence 管理员可以自定义或者禁用特定的蓝图模板,因此他们可能与在这里显示的蓝图页面和模板具有一些不同。 空间模板的类型 小组空间(Team space) 如果你使用 Confluence 为你的内部使用或者管理项目小组是一个很好的项目结构。小组空间将会高亮显示项目小组的成员或者为这些用户赋予权限。 知识库空间( Knowledge base space ) 空间蓝图使用查找和页面标签来让空间中的内容更加容易的被找到。用户可以在空间的首页中直接使用这些功能。同时还有一个 2 个页面的蓝图用来创建如何对问题进行修复的文章。在空间中使用的这些页面蓝图是完全可以自定义的。空间蓝图页面同时也可以从  Use Jira applications and Confluence together  中创建过来。. 文档空间( Documentation space ) 文档空间蓝图在边栏中显示了完整的页面树,同时还隐藏了其他的变量功能,包括博客,分享的链接。用查找和页面标签来让空间中的内容更加容易的被找到。用户可以在空间的首页中直接使用这些功能。添加 'featured' 标签到任何页面,如果你希望这些页面能够在首页显示的话。这个空间不包括任何页面蓝图,但是你可以为你自己的文档作者创建一个他们使用的页面蓝图模板。 软件项目空间( Software project space ) 这个空间蓝图被用来设计帮助你组织你的软件项目。良好构建的空间主页能够让你查看和编辑软件开发路径。请查看小组成员和  JIRA Software 。在这个页面中创建需求,会议记录,决议,复古和其他的内容。  软件项目空间蓝图只会在你将 Jira 软件示例连接到 Confluence 后才能显示。 请查看下面有关如何使用的知识指南: Use ...

从早期 Spring Boot 版本升级

如果你现在正在从早期的 Spring Boot 版本进行升级的话,请访问  “migration guide” on the project wiki  页面,这个页面提供了有关升级的详细指南。同时也请查看下  “release notes”  页面,在这个页面中提供了每次新版本发布的新的和值得关注的(new and noteworthy)的特性。 当一个新的版本发布的时候,一些属性可能会被重命名或者删除。Spring Boot 同时也提供了一个供你分析你应用程序环境和在启动的时候打印诊断信息的方法,同时还尝试帮助你在运行的时候为你整合属性。 如果你希望启用这个特性,请在你的项目中添加下面的依赖: < dependency >      < groupId > org.springframework.boot </ groupId >      < artifactId >spring-boot-properties-migrator</ artifactId >      < scope >runtime</ scope > </ dependency > 在后面添加进环境中的属性,将不会显示出来。例如  @PropertySource 当你完成整合后,请将这个模块从你的应用程序项目中删除。 为了更新已经存在的 CLI 安装,使用正确的包管理命令(例如,brew upgrad),如果你是手动安装的 CLI,请参考  standard instructions  页面中的内容。 请不要忘记更新你的 PATH 环境变量,来删除可能有指向到老的安装环境上的配置。 https://www.cwiki.us/display/SpringBootZH/Installing+Spring+Boot

安装 Spring Boot CLI

Spring Boot CLI(Command Line Interface)是一个命令行工具,可用于快速搭建基于Spring的原型。它支持运行 Groovy  脚本,这也就意味着你可以使用类似Java的语法,但不用写很多的模板代码。 Spring Boot 不一定非要配合 CLI 使用,但它绝对是让 Spring 应用进入状态的最快方式。 手动安装 你可以从 Spring 的软件仓库中下载 Spring CLI 分发包: spring-boot-cli-2.1.0.RELEASE-bin.zip spring-boot-cli-2.1.0.RELEASE-bin.tar.gz 更前沿和更新的  snapshot distributions  也是可以下载到的。 一旦你下载完成后,请按照  INSTALL.txt  中的指南来解压归档文件。主要来说,这里有一个  spring  脚本( spring.bat  是针对 Windows 使用的)在  bin/  目录下的  .zip  文件中。可选的,你可以使用  java -jar  再加上  .jar  文件(脚本文件能够帮助你确保 classpath 已经正确的设置了)。 使用 SDKMAN! 进行安装 SDKMAN! (The Software Development Kit Manager) 中文可以翻译为软件开发管理工具可以被用来管理多个版本的 2 进制 SDKs,包括  Groovy 和Spring Boot CLI。你可以从  sdkman.io  网站上来获得 SDKMAN!,然后通过使用下面的命令行工具来安装 Spring Boot: $ sdk install springboot $ spring --version Spring Boot v2.1.0.RELEASE 如果你正在为CLI开发新的特性,并想轻松获取刚构建的版本,可以使用以下命令: $ sdk install springboot dev /path/to/spring-boot/spring-boot-...

Spring Boot 针对 Java 开发人员的安装指南

Spring Boot 可以使用经典的开发工具或者使用安装的命令行工具。不管使用何种方式,你都需要确定你的 Java 版本为  Java SDK v1.8  或者更高的版本。在你开始安装之前,你需要确定你当前安装的 Java 版本满足系统运行的需要。 你可以使用下面的命令进行查看: $ java -version 如果你是 Java 项目开发的新手或者你希望实践使用 Spring Boot。你应该使用 Spring Boot 命令行工具( Spring Boot CLI ),否则的话,请阅读有关经典安装指南。 针对 Java 开发人员的安装指南 对于Java 开发者来说,使用 Spring Boot 就跟使用其他 Java 库一样,只需要在你的  classpath  下引入适当的  spring-boot-*.jar  文件。 Spring Boot不需要集成任何特殊的工具,所以你可以使用任何IDE或文本编辑器;同时,Spring Boot应用也没有什么特殊之处,你可以像对待其他Java程序那样运行,调试它。 尽管可以拷贝 Spring Boot jars,但我们还是更加建议你使用支持依赖管理的构建工具,比如 Maven 或 Gradle。 Maven 安装 Spring Boot 兼容 Apache Maven 3.3 或更高版本。如果本地没有安装Maven,你可以参考  maven.apache.org  上的指南在你本地安装 Maven。 在很多操作系统中,Maven 可以通过包管理器进行安装。如果你使用 OSX Homebrew 操作系统,你可以考虑使用 brwe 安装 Maven。 在 Ubuntu 中,你可以运行  sudo apt-get install  命令来安装 Maven。 Windows 用户,如果你使用了  Chocolatey  ,你可以从弹出的管理员控制台中运行  choco install mave n 命令。 Spring Boot依赖使用的 groupId 为  org.springframework.boot 。 通常,你的 Maven POM 文件会继...

Confluence 6 空间

Image
什么是一个空间? Confluence 空间是包含有页面和博客页面的容器。你也可以将空间认为是对你工作中可以使用的 2 中类型的目录。 在 Confluence 中有下面 2 种空间类型: 站点空间(Site spaces)  – 这些空间可以在  空间目录(Space Directory) 中找到。   在这里你可以创建与其他用户共享内容和合作文档。有时候也被称为全局空间。 个人空间(Personal spaces)  – 每一个 Confluence 的用户都可以设置他们自己的个人空间。你可以让这些空间保持为私有的空间,或者将这些空间开放让其他用户查看和编辑。个人空间将会在  用户目录(People Directory) 中立列出来。 你可以通过在 Confluence 顶部的  Spaces  >  Create space  (空间 > 创建空间)来  Create a Space 。你可以在这个空间中存储相关的分类信息。人们使用 Confluence 空间的主要有下面 2 类原因:为项目小组创建一个空间,或者为一个项目创建一个空间。 可以为市场小组,开发小组,IT 小组,人力资源小组等需要进行工作协调的部门创建一个空间。如果你有很多项目,不管你的项目是大项目还是小项目,为一个项目创建一个空间将会为你的项目带来很多好处,任何可以在项目空间中协同工作,存储相关文件。 在 Confluence 中,可以创建无限的空间。 我该如何使用一个空间? 创建(Create) 尽可能多的空间来更好的完成你需要的任务: 小组空间(Team spaces)  – 给每个小组(QA, HR, Engineering, Support, ...)自己的空间,这样他们可以更加容易的找到他们需要的信息或让其他人也能更加容易的找到需要的信息。 项目空间(Project spaces)  – 将所有与你项目有关的信息都放在一个地方。这个能够让项目小组中每一个成员都能够分享信息,而不用不停的发送电子邮件。 个人空间(Personal space)  – 将所有你自己有关的工作保存在你的个人空间中,保存你自己的任...

Spring Boot 系统要求

Spring Boot 2.1.0.RELEASE 方需要  Java 8 or 9  的支持和  Spring Framework 5.1.2.RELEASE  以上的版本。 明确的构建工具的支持,请参考下面的构建工具: 构建工具 版本 Maven 3.3+ Gradle 4.4+ Servlet 容器 Spring Boot 支持下面的嵌入 servlet 容器: 名字 Servlet 版本 Tomcat 9.0 4.0 Jetty 9.4 3.1 Undertow 2.0 4.0 你也可以将 Spring Boot 部署到任何支持  Servlet 3.1+ 的容器中。 https://www.cwiki.us/display/SpringBootZH/System+Requirements

Spring Boot 介绍

Spring Boot 能够让你更加容易创建一个独立启动,产品化的,并且是基于 Spring 的应用程序。我们为 Spring 平台及第三方库提供开箱即用的设置,这样你就可以有条不紊的开始开发,减少在开发配置中的困难。 绝大部分的 Spring Boot 应用只需要很少的 Spring 配置。 你可以使用 Spring Boot 来创建一个可以使用  java -jar   运行的 Java 引用,你也可以将这个引用的 war 文件部署到传统的容器中。我们也提供了一个运行 Spring 脚本(spring scripts)的命令行工具。 我们的主要目标是: 为所有的 Spring 开发提供一个更快更广泛的入门体验。 成为开箱即用的先锋,但是根据需求的默认值的更高,更加快速的进行开发和部署。 为大型项目提供一系列非功能性的通用功能(包括有,嵌入服务器,安全,指标,健康检查,外部化配置)。 绝对不需要创建代码和需要 XML 配置。 https://www.cwiki.us/display/SpringBootZH/Introducing+Spring+Boot

Spring Boot 文档

本节对 Spring Boot 的参考文档做了一个简单概述。本章节对全文的参考手册进行内容上的一些索引。 你可以参考本节,从头到尾依次阅读该文档,也可以跳过不感兴趣的内容。 Spring Boot 参考指南同时还提供了下面的文档格式: HTML PDF EPUB 最新版本的文档更新你可以通过下面的链接访问到:  docs.spring.io/spring-boot/docs/current/reference . 不过你使用这个文档的拷贝是用于你自己还是分发给其他人,在保证包含有本版权声明和不收取任何费用的前提下,你可以自由的使用和分发。 不论是电子版还是打印版都是一样的。 https://www.cwiki.us/display/SpringBootZH/Spring+Boot+Documentation

Java 的对象和类

Image
Java 是一种面向对象的语言。作为一个面向的语言,Java 具有面向对象的特性,Java 能够支持下面的一些基本概念 − 多态(Polymorphism) 继承(Inheritance) 封装(Encapsulation) 抽象(Abstraction) 类(Classes) 对象(Objects) 实例(Instance) 方法(Method) 消息传递(Message Passing) 在这个章节中,我们将会重点进入 Java 的一个概念 - 类和对象。 对象(Object )− 对象具有状态和行为。例如:一条狗具有状态 - 颜色,名字,品种;同时还具有行为 - 摇动尾巴,叫唤,吃东西。一个对象就是一个类的实例。 类(Class )− 一个类可以定义一些模板或蓝图,这些用来描述一类对象的状态和行为。   我们以狗为例子,在这个例子中。我们定义了一个狗的类,这个用于描述狗的定义。 在实际中,我们可能会遇到各种不同类型的狗,这些类型的狗都会有自己的状态和行为,我们成为对象。 例如,我们现在要描述一条拉布拉多犬,那么我们可以用狗这个类创建拉布拉多犬这个对象,在 Java 中使用关键字 new 进行创建。 https://www.cwiki.us/pages/viewpage.action?pageId=37492732

Confluence 6 完成你的任务

Image
很好,宇航员们,你已经令人钦佩的展示了你自己的。我们确定你新招募的员工已经对你了解的 Confluence 知识感到赞叹。 在这个指南中,我们已经完成了: 在主面板中对 Confluence 的功能进行了展示和剖析。 在空间目录和关注的空间中进行导航。 查看了下自定义的边栏。 找到了有关键盘快捷的用用列表来帮助你更快的进行工作。 再次看看你项目小组成员可爱的笑容... 如果你希望更进一步的了解系统的功能,请查看我们指南的下一部分  space ace 。 https://www.cwiki.us/display/CONF6ZH/Complete+your+mission

Java 源代码和 C 源代码的运行区别

Image
与其他程序的执行方式和编译方式不同。 Java 源代码需要进行编译成字节码后在 Java 虚拟机上运行,这样 Java 程序能够保持独立性和跨平台功特性。 请参考下图。 https://www.cwiki.us/pages/viewpage.action?pageId=37492288

Java 访问控制关键字

Image
public, private, protected 在控制上有什么区别和不同请参考下面的说明。 请参考下图的说明。 和下面的一个说明: │ Class │ Package │ Subclass │ Subclass │ World │ │ │(same pkg)│(diff pkg)│ ────────────┼───────┼─────────┼──────────┼──────────┼──────── public │ + │ + │ + │ + │ + ────────────┼───────┼─────────┼──────────┼──────────┼──────── protected │ + │ + │ + │ + │ ────────────┼───────┼─────────┼──────────┼──────────┼──────── no modifier │ + │ + │ + │ │ ────────────┼───────┼─────────┼──────────┼──────────┼──────── private │ + │ │ │ │ + : accessible blank : not accessible 不管使用何种修饰符,在本类中都可以访问。 使用 public 修饰符,在所有的地方都可以访问,除非 Package 不可见。 使用 private 修饰符,只能在本类中可以访问。 使用 protected 修饰符,能够在本类,相同 package 中,和子类(可以是不同的包)中访问。 不使用修饰符,能够在本类,本包和子类(相同的包)中访问。 https://www.cwiki.us/display/JAVAZH/questions/41681047

Confluence 6 快捷键

Image
快捷键图标。 官方的下载地址为: https://atlassianblog.wpengine.com/wp-content/uploads/2018/01/keyboard-shortcuts-infographics.pdf

MariaDB 服务器在 MySQL Workbench 备份数据的时候出错如何解决

Image
服务器是运行在 MariaDB 10.2 上面的,在使用 MySQL Workbench 出现错误: mysqldump: Couldn't execute 'SELECT COLUMN_NAME, JSON_EXTRACT(HISTOGRAM, '$."number-of-buckets-specified"') FROM information_schema.COLUMN_STATISTICS WHERE SCHEMA_NAME = 'mls' AND TABLE_NAME = 'office';': Unknown table 'COLUMN_STATISTICS' in information_schema (1109) 这看起来应该是 MySQL Workbench 使用的 mysqldump 版本和服务器的版本不兼容的问题。 你可以现在 MariaDB 的 ZIP 包解压后到你本地机器上。 然后在 MySQL Workbench 上配置使用 MariaDB 自带的 dump 程序。 https://www.cwiki.us/display/MariaDB/questions/41680979/mariadb-%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%9C%A8-mysql-workbench-%E5%A4%87%E4%BB%BD%E6%95%B0%E6%8D%AE%E7%9A%84%E6%97%B6%E5%80%99%E5%87%BA%E9%94%99

Confluence 6 教程:在 Confluence 中导航

Image
当你对 Confluence 有所了解后,你会发现 Confluence 使用起来非常简单。这个教程主要是针对你使用的 Confluence 界面进行一些说明,同时向你展示在那里可以进行一些通用的任务和操作。 空间的小组 在这个教程中,你将会开始对空间的小组成员进行一些了解。让我们首先来了解他们。 Alana Baczewski   Tech Lead Emma Silvetti   Launch Specialist William Vladinov   Aerospace Engineer 现在你已经和你的小组成员见面了,让我们来看看你的任务是什么。 任务简介 你的任务是:在这周你需要在 Space 的总部训练你新招聘的小组成员如何使用协同工具—— Confluence。你仅仅需要对基础的内容进行了解就可以了,因此你需要对完成你任务需要的主要事情进行一些了解。 你的任务根据需要区分为下面的一些组件: 了解主面板(dashboard) 了解空间目录的使用 管理空间边栏 使用快捷键来让所有人都了解系统的是如何使用的 这些新招聘的项目组成员将会明天来到公司,让我们现在就开始相关的培训! https://www.cwiki.us/display/CONF6ZH/Tutorial%3A+Navigate+Confluence

Confluence 6 开始使用

Image
欢迎来到 Confluence 的开始使用指南文档。在这个稳定中,你将会找到有关对 Confluence 进行评估的指南和其他的一些有用的内容。当你开始使用 Confluence 的时候,这些信息能够帮助你更好的了解 Confluence 。 空间的小组 针对这个指南中的部分,我们将使用一个虚构的组织,这个组织被我们标识为空间项目(Teams in Space)。我们的任务是: "进行飞行研究和技术整合来对航空航天进行科技进行革命化的推进。同时让人类能够在 2020 年第一次登陆火星。" 你现在已经是 'See Space EZ' 项目小组的宇航员了,我们将要考虑在火星上定居了。 继续下一步 —— 请继续阅读有关 Confluence 的这个使用指南,让我们帮助你展示 Confluence 中有用的功能和一些方便的特性。 Tutorial: Navigate Confluence The dashboard The space directory The space sidebar Keyboard shortcuts Complete your mission Tutorial: Space ace Create a project space Create your personal space Create the team's PR space Delete and archive spaces https://www.cwiki.us/display/CONF6ZH/Get+started

Windows 10 设置 Java 环境变量

Image
首先你需要在我的电脑中打开,找到环境变量属性。 找到环境变量属性 找到环境变量属性后单击将会看到下面的设置界面。 在这个界面中设置高级系统设置。 环境变量 在弹出的界面中选择设置环境变量。 系统变量 你需要在弹出的界面中选择系统变量。 如果你的系统变量中已经有 JAVA_HOME 的话,你选择这个选项然后直接对安装的新 JDK 目录进行指派就可以了,如果你没有这个变量的话,你需要手动添加这个变量。 添加到 PATH 为了让你的系统能够识别 Java,你需要将变量添加到 PATH 中。 在系统变量中选择 PATH,然后在检查你的 PATH 中是否已经添加了 Java,如果没有的话,请进行添加,如果有的话就可以忽略这个步骤了。 确定下面 2 个变量在你的系统 PATH 里面就可以了。 至于 CLASSPATH 是否需要配置,根据情况就可以了。目前的 JDK 版本一般要求不需要配置 CLASSPATH。 https://www.cwiki.us/pages/viewpage.action?pageId=37492931

Windows 环境下安装 Oracle JDK

Image
本页面中描述了如何在 Window 环境下安装 Oracle JDK。 我们使用的版本是 Window 10,我们需要安装的版本是 Oracle JDK 8u191。 检查当前版本 在进行新的 JDK 安装之前,你需要检查下你本地的计算机系统中是否已经安装有了 JDK 版本。 最简单的办法就是在命令行中运行 java -version 命令。 如果你有看到下面的输出,表明的是当前你的计算机系统中没有安装 Java。 C:\Users\YuCheng>java -version Error: opening registry key  'Software\JavaSoft\Java Runtime Environment' Error: could not find  java.dll Error: Could not find Java SE Runtime Environment. 下载 JDK 在安装之前需要下载安装的办法,你可以通过访问网站获得: https://www.oracle.com/technetwork/java/javase/downloads/index.html 需要注意的是,从 2019年1月开始,Oracle 不再提供 JDK 1.8 版本的公开更新了。你需要在你使用的系统中考虑这个问题。对于 JDK,你需要根据的情况进行取舍,如果是一些新的项目,可以考虑使用 OpenJDK。 单击上面的连接后,进入 JDK 的下载页面。 请注意,你需要下载的是 JDK。 针对具体的下载版本,你需要根据你的操作系统版本进行选择。 执行安装 在获得下载的可执行文件后,在你的本地计算机中双击运行。 安装界面 你可以看到下面的运行界面。按照安装提示进行默认安装就可以了,基本上不需要修改安装路径。 选择安装路径 根据安装界面的提示,选择安装路径。一般来说使用默认的安装路径就可以了。 安装进程 安装正在进行中,请耐心等待。 版本提示 从 2019年1 月开始,JDK 8 将不会提供公共更新了。JDK 将会鼓励大家升级到新版本的 JDK。 你也可以选择安装 OpenJDK。 选择 JRE 安装路径 在安装的后面,将会要求对 J...

Java 本地环境设置

如果你希望在你的本地环境中设置 Java 程序环境,下面的这部分将会指导你在你的本地计算机上下载和设置 Java 环境。你可以按照下面的步骤进行。 Java SE 目前是免费下载的,你可以通过单击下面的连接进入下载界面后,下载你需要的版本。下载的链接如下: https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 请按照下载的指南下载 JDK 后单击运行 .exe 安装 JDK 到你的计算机中。一旦你完成安装后,你需要设置环境变量来将你的 JDK 安装正确指向到你的安装目录中。 有关 Windows 下 JDK 的安装,请参考: Windows 环境下安装 Oracle JDK Window 设置 Path 同时,请参考  Java 环境变量  页面中的有关 Windows 10 中环境变量的设置。 假设你安装 Java 到  c:\Program Files\java\jdk  目录中 —— 右击   我的电脑  然后选择 属性 。 单击  环境变量  按钮,这个按钮位于  高级  标签页下面。 现在,你可以修改 Path 变量指向到 Java 的执行环境。例如,如果当前的路径被设置为 'C:\WINDOWS\SYSTEM32',的话,你需要修改 Path 路径为  'C:\WINDOWS\SYSTEM32;c:\Program Files\java\jdk\bin'。 Linux, UNIX, Solaris, FreeBSD 设置 Path Environment 变量中的 PATH 应该设置到你 Java 安装的 Java binaries 目录中。请参考有关你操作系统中的 shell 文档,如果你在设置这个变量的时候遇到错误的话。 例如,如果你使用 bash 为你的 shell, 你应该添加下面的命令行到你 bashrc 的末尾  '.bashrc: export PATH = /path/to/java:$PATH' https:/...

Java 环境变量

在本部分,我们将会讨论根据不同的操作系统环境来设置 Java 的语言环境。 OpenJDK -  https://openjdk.java.net/ Sun JDK -  https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 关于 JDK 和 OpenJDK,这个问题要从 Sun,Oracle,开源社区的恩恩怨怨说起。简单来说就是下面的一些内容(原文来自知乎: https://www.zhihu.com/question/19646618/answer/40621705 ) 使用过 Linux 的人都应该知道,在大多数Linux 发行版本里,内置或者通过软件源安装 JDK 的话,都是安装的 OpenJDK,那么到底什么是 OpenJDK,它与 SUN JDK有什么关系和区别呢? 历史上的原因是,OpenJDK 是JDK 的开放原始码版本,以 GPL(General Public License)协议的形式放出。在 JDK7 的时候,OpenJDK 已经作为 JDK7 的主干开发,SUN JDK7 是在 OpenJDK7 的基础上发布的,其大部分原始码都相同,只有少部分原始码被替换掉。使用JRL(JavaResearch License,Java研究授权协议)发布。至于 OpenJDK6 则更是有其复杂的一面,首先是 OpenJDK6 是 JDK7 的一个分支,并且尽量去除Java SE7的新特性,使其尽量的符合Java6的标准。关于JDK和OpenJDK的区别,可以归纳为以下几点: 授权协议的不同: OpenJDK采用GPL V2协议放出,而SUN JDK则采用JRL放出。两者协议虽然都是开放源代码的,但是在使用上的不同在于GPL V2允许在商业上使用,而 JRL 只允许个人研究使用。 OpenJDK不包含Deployment(部署)功能:部署的功能包括:Browser Plugin、Java Web Start、以及 Java 控制面板,这些功能在 OpenJDK 中是找不到的。 OpenJDK源代码不完整: 这个很容易想到,在采用GPL协议的OpenJDK中,SUN JDK 的一部分源代码因为产权的问题无...

Java 历史

James Gosling 最初开始 Java 语言项目是在 1991 年的 7 月。Java 被用在他的许多 set-top box 工程中。这个语言最开始的时候被称为 Oka,这个是因为 James Gosling 办公室外有一颗橡树,同时也考虑过使用 Green 这个名字,最终这个语言被命名为 Java。这个名字是从一堆名字中随机选取的。 Sun 发布了 Java 的 1.0 版本的实现是在 1995 年。这个程序被称为编写一次随处运行(WORA),这样为多平台提供了无成本的运行条件。 在 2006年11月13 日,Sun 发布了Java 免费的开源版本,这个版本是基于 GNU General Public License (GPL) 开源协议的。 在 2007年5月8日,Sun 完成了开源过程,将所有的 Java 源代码开源了,除了 Sun 没有取得版权的一些代码外。 与传统型态不同,Sun公司在推出Java时就将其作为开放的技术。全球数以万计的Java开发公司被要求所设计的 Java 软件必须相互兼容。 “Java语言靠群体的力量而非公司的力量”是 Sun公司的口号之一,并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同,此外,微软公司后来推出了与之竞争的.NET平台以及模仿Java的C#语言。后来Sun公司被甲骨文公司并购,Java也随之成为甲骨文公司的产品。 时间 事件 1995-05 Java语言诞生 1996-01 第一个JDK-JDK1.0诞生 1996-04 10个最主要的操作系统供应商申明将在其产品中嵌入JAVA技术 1996-09 约8.3万个网页应用了JAVA技术来制作 1997-02 JDK1.1发布 1997-04 JavaOne会议召开,参与者逾一万人,创当时全球同类会议规模之纪录 1997-09 JavaDeveloperConnection社区成员超过十万 1998-02 JDK1.1被下载超过2,000,000次 1998-12 JAVA2企业平台J2EE发布 1999-06 SUN公司发布Java的三个版本:标准版(JavaSE,以前是J2SE)、企业版(JavaEE以前是J2EE)和微型版(JavaME,以前是J2ME) 2...

Java 主要特性

Java 有下面的一些主要特性。 面向对象 在 Java 中,所有的都是对象。正式因为 Java 基于对象模型,所以 Java 更加容易进行扩展。 Java语言提供类、接口和继承等面向对象的特性,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。Java语言全面支持动态绑定,而C++语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言。 平台独立性 与其他许多语言不同(包括 C/C++),当 Java 被编译后,Java 程序并没有被编译成只针对某一特定平台使用的的机器语言,而是编译成了一个平台独立的 2 进制代码(byte code)。这个二进制代码通过 Web 进行分发并且通过 Java 虚拟机(JVM)运行。所以你的程序与平台具有无关性。 Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。 简单 Java 被设计Wie简单易学。如果你能够理解基本的 OOP(面向对象编程)概念,Java 对你来说应该不会很难。同时,Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用。 另一方面,Java丢弃了C++中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,而是引用。并提供了自动的废料收集,使得程序员不必为内存管理而担忧。 安全 通过启用 Java 的安全特性,能够开发出无病毒,无篡改的系统,授权也是基于公钥加密的。 Java 通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。 体系结构中立 Java 的编译器创建了一个体系结构中立的对象格式,这样的体系结构能够让 Java 编译过的代码在多处理器环境下运行。当然这个环境需...

Java 概述

Java 是由 Sun Microsystems 公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称(Java 1.0 [J2SE])。由James Gosling和同事们共同研发,并在1995年正式推出。 Java 标准版(Java Standard Edition)的最新发行版本为 Java SE 8。Java 具有很多高级特性并且能够被广泛的应用,Java 有多个配置版本以便于更加适宜不同的开发需求。例如:针对企业应用的 J2EE,针对移动应用使用的 J2ME。 新的 J2 版本被命名为 Java SE,Java EE 和 Java ME。 JavaSE(J2SE)(Java2 Platform Standard Edition,Java 平台标准版) JavaEE(J2EE)(Java 2 Platform,Enterprise Edition,Java 平台企业版)  JavaME(J2ME)(Java 2 Platform Micro Edition,Java 平台微型版) Java 能够确保一次编码,多处运行。 https://www.cwiki.us/display/JAVAZH/Overview

Jersey 2.x 运行项目

现在我们已经有可以可以运行的项目了,让我们队这个项目进行一些测试吧。 你需要运行下面的一些命令行: mvn clean test 这个命令将会对项目进行编译后运行单元测试。 你应该会看到和下面类似的输出表示项目编译成功了: Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 2.742 s [INFO] Finished at: 2018-03-27T15:05:50-04:00 [INFO] Final Memory: 17M/205M [INFO] ------------------------------------------------------------------------ 上面的输出表示的是项目已经被编译测试通过了。 我们可以开始使用独立启动方式启动项目了,希望直接启动项目,需要运行下面的 mvn 项目启动命令: mvn exec:java 这时候,项目应该已经正常启动了,很快你应该可以在控制台上看到下面的输出: Mar 27, 2018 3:10:28 PM org.glassfish.grizzly.http.server.NetworkListener start INFO: Started listener bound to [localhost:8080] Mar 27, 2018 3:10:28 PM org.glassfish.grizzly.http.server.HttpServer start INFO: [HttpServer] Started. Jersey app started with WADL available at http://localhost:8080/myapp/applicati...

Jersey 2.x 探索新建的工程

如果用 Jersey maven archetype 成功创建了这个项目,那么在你当前的路径下就已经创建了一个名为 simple-service 项目。它包含了一个标准的Maven项目结构: 说明 文件目录 在项目根目录下的的项目构建和管理配置描述文件   pom.xml 项目源代码文件 src/main/java 项目测试源代码 src/test/java 在原文路径下的 com.example 包中有两个 class 文件,这个 Main 类主要是负责启动 Grizzly 容器,同时也为这个容器配置和部署 JAX-RS 应用。 在同一个包内的另外一个类 MyResource 类是 JAX-RS 的一个实现的源代码,如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 package   com.example;   import   javax.ws.rs.GET; import   javax.ws.rs.Path; import   javax.ws.rs.Produces; import   javax.ws.rs.core.MediaType;   /**   * Root resource (exposed at "myresource" path)   */ @Path ( "myresource" ) public   class   MyResource {        /**       * Method handling HTTP GET requests. The returned object will be sent       * to the client as "te...