Java SE / EE / ME之间的区别?


326

当我想开始学习Java时应该安装哪一个?我将从一些基础知识开始,因此我将编写一些简单的程序来创建文件,目录,编辑XML文件等,目前还没有什么太复杂的。

我猜Java SE(标准版)是我应该在Windows 7桌面上安装的版本。我已经有Komodo IDE,可以用来编写Java代码。


6
您应该从学习Java SE开始。首先,Java EE可能会有些令人困惑。当您准备就绪时,请查看这个出色的Java EE 7概述页面以开始使用。特别是Java EE 7 Oracle教程是一个不错的起点。
dexter meyers,2014年

Answers:


545

Java SE = 标准版。这是Java编程的核心平台。它包含所有Java程序员都应学习的所有库和API(java.lang,java.io,java.math,java.net,java.util等)。

Java EE = 企业版。从维基百科:

Java平台(企业版)与Java标准版平台(Java SE)的不同之处在于,它添加了一些库,这些库主要基于在应用程序服务器上运行的模块化组件来提供部署容错的分布式多层Java软件的功能。 。

换句话说,如果您的应用程序需要非常大规模的分布式系统,则应考虑使用Java EE。它基于Java SE构建,提供了用于数据库访问(JDBC,JPA),远程方法调用(RMI),消息传递(JMS),Web服务,XML处理的库,并定义了用于Enterprise JavaBean,Servlet,Portlet,Java的标准API。服务器页面等...

Java ME = 微型版。这是用于开发移动设备和嵌入式系统(例如机顶盒)的应用程序的平台。Java ME提供了Java SE功能的子集,但还引入了特定于移动设备的库。因为Java ME基于Java SE的早期版本,所以Java 1.5中引入的某些新语言功能(例如泛型)不可用。

如果您不熟悉Java,那么一定要从Java SE开始。


157
我不同意向以前从未编写过Java代码的人推荐IDE。首先使用命令行编写一些代码,以便您有机会了解CLASSPATH的含义。如果您在了解Java之前就使用Eclipse,那么您将不知道这是两件事。
duffymo 2010年

47
@duffymo IMO实际上,建议使用IDE是一个好主意,因为使用纯文本编辑器进行编码对于学习新语言没有任何好处,具有智能感知和自动补全功能对于已经了解其他生态系统的程序员是非常宝贵的帮助。熟悉新环境。
Felice Pollano 2015年

4
@duffymo 5年后,我仍在阅读这篇文章,因为Google将我带到了这里,所以我认为仍然有必要进行讨论。在这种情况下,我同意您关于IDE的观点。
qutab 2015年

8
我认为讨论棘手和永恒的问题没有错。
LegendLength

2
仅JDK版本特定吗?或SE和EE的JRE和JVM不同?
阿伦SR

68

以下是一些关于API的区别

Java SE包含具有以下API以及更多其他API

  • 小程序
  • awt
  • rmi
  • 数据库
  • 摇摆
  • 馆藏
  • xml绑定
  • JavaFX(合并到Java SE 8)
  • Java 8 Collections流API
  • Java 9反应流API
  • Java 9 HTTP / 2 API

Java EE包含以下API以及更多其他API

  • 小服务程序
  • 网络套接字
  • Java面孔
  • 依赖注入
  • j
  • 坚持不懈
  • 交易
  • 简讯
  • 批处理API

Java ME包含以下API以及更多其他API

  • 无线通讯
  • Java ME Web服务
  • 安全和信任服务API
  • 位置
  • 移动XML API

希望这可以帮助。


1
如前所述,这是否意味着EE中不包含SE中的内容?ME中的内容不是EE中的内容吗?例如,如果您要使用无线消息传递,则似乎需要ME,而在EE中则不可用。它是否正确?
ejbytes,

从Java EE版本6开始,Collections API也是Java EE的一部分吗?
Sriyank Siddhartha

52

Java SE是构建Java EE的基础。

Java ME是移动设备SE的子集。

因此,您应该为项目安装Java SE。


36

根据Oracle的文档,实际上有四个Java平台:

  • Java平台标准版(Java SE)
  • Java平台企业版(Java EE)
  • Java平台微型版(Java ME)
  • JavaFX

Java SE用于开发桌面应用程序,并且是使用Java语言进行开发的基础。它由Java应用程序中使用的开发工具,部署技术以及其他类库和工具包组成。Java EE是在Java SE的基础上构建的,用于开发Web应用程序和大型企业应用程序。Java ME是Java SE的子集。它提供了一个API和一个小型虚拟机,用于在小型设备上运行Java应用程序。JavaFX是使用轻量级用户界面API创建富Internet应用程序的平台。它是Java平台家族的最新成员。

严格来说,这些平台是规范。它们是规范,而不是软件。Java平台标准版开发套件(JDK)是 Oracle提供的Java SE规范的正式实现。还有其他实现,例如OpenJDK和IBM的J9。

刚接触Java的人会为其平台和操作系统下载JDK(可在此处下载Oracle的JDK 。)


1
Java 6的确如此。Java7文档说有3个平台,JavaFX是Java SE的一部分。
Javatar

Java SE用于开发桌面应用程序Java EE用于开发Web应用程序和大型企业应用程序。
AyukNayr

20

当我遇到这个问题时,我发现Oracle教程中提供的信息非常完整,值得分享:

Java编程语言平台

Java编程语言有四个平台:

  • Java平台标准版(Java SE)

  • Java平台企业版(Java EE)

  • Java平台微型版(Java ME)

  • JavaFX

所有Java平台均包含Java虚拟机(VM)和应用程序编程接口(API)。Java虚拟机是用于特定硬件和软件平台的程序,它运行Java技术应用程序。API是软件组件的集合,可用于创建其他软件组件或应用程序。每个Java平台都提供一个虚拟机和一个API,这使得为该平台编写的应用程序可以在具有Java编程语言的所有优点的任何兼容系统上运行:平台无关性,功能强大,稳定,易于开发和安全。

Java SE

当大多数人想到Java编程语言时,他们就会想到Java SE API。Java SE的API提供了Java编程语言的核心功能。它定义了从Java编程语言的基本类型和对象到用于网络,安全性,数据库访问,图形用户界面(GUI)开发和XML解析的高级类的所有内容。

除了核心API之外,Java SE平台还包括虚拟机,开发工具,部署技术以及Java技术应用程序中常用的其他类库和工具包。

Java EE

Java EE平台建立在Java SE平台之上。Java EE平台提供了一个API和运行时环境,用于开发和运行大规模,多层,可伸缩,可靠和安全的网络应用程序。

Java ME

Java ME平台提供了API和小型虚拟机,用于在小型设备(例如手机)上运行Java编程语言应用程序。该API是Java SE API的子集,以及对小型设备应用程序开发有用的特殊类库。Java ME应用程序通常是Java EE平台服务的客户端。

JavaFX

JavaFX是使用轻量级用户界面API创建富Internet应用程序的平台。JavaFX应用程序使用硬件加速的图形和媒体引擎来利用更高性能的客户端和现代的外观以及高级API来连接网络数据源。JavaFX应用程序可以是Java EE平台服务的客户端。


1
从甲骨文网站复制:)
Irfan Nasim

1
@IrfanNasim我知道它是从Oracle复制而来的,我提到了!您从顶部开始阅读答案了吗?并且您知道在SO中提供链接时,您还必须复制重要信息,因为一旦链接不最新或不起作用,人们仍然可以阅读链接中的内容!!很奇怪,您有198个代表,但您仍然不知道规则!!
塔里克

13

我猜Java SE(标准版)是我应该在Windows 7桌面上安装的版本

是的,当然。Java SE是最好的入门。顺便说一句,您必须学习Java基础知识。这意味着您必须学习Java SE中的一些库和API。

Java平台版本之间的差异:

Java Micro Edition(Java ME):

  • 高度优化的运行时环境。
  • 目标消费产品(寻呼机,手机)。
  • Java ME以前称为Java 2 Platform,Micro Edition或J2ME。

Java标准版(Java SE):

开发人员编写,部署和运行小程序和应用程序的Java工具,运行时和API。Java SE以前被称为Java 2 Platform Standard Edition或J2SE。(从这里开始的每个人/初学者)

Java企业版(Java EE):

针对企业级服务器端应用程序。Java EE以前称为Java 2 Platform,Enterprise Edition或J2EE。

这个问题的另一个重复问题。


最后,关于J ..混乱

JVM(Java虚拟机):

JVM是JDK和JRE的一部分,JDK和JRE都转换Java字节代码并将其作为本地代码在客户端计算机上执行。

JRE(Java运行时环境):

这是Java程序执行所需的环境。它包含 JVM,类库和其他支持文件。它不包含任何开发工具,例如编译器,调试器等。

JDK(Java开发套件):

JDK包含开发Java程序(javac,java,javadoc,appletviewer,jdb,javap,rmic等)和JRE运行该程序所需的工具。

Java SDK(Java软件开发套件):

SDK包含JDK和其他软件,例如应用程序服务器,调试器和文档。

Java SE:

Java平台标准版(Java SE)使您可以在台式机和服务器(与SDK相同)上开发和部署Java应用程序。

J2SE,J2ME,J2EE

Java版本从1.2到1.5的任何版本

阅读有关这些主题的更多信息:


11

是的,Java SE是从那里开始的。您提到的所有任务都可以使用它来处理。

Java ME是移动版,而EE是企业版;这些是标准版的专用/扩展版本。


7

是的,您应该从Java SE开始。Java EE适用于Web应用程序,Java ME适用于移动应用程序-两者均基于SE构建。



2

如果您是我,则将安装Java SE SDK。安装后,请确保已设置JAVA_HOME环境变量,并将%JAVA_HOME%\ bin目录添加到您的路径。


1

开发人员使用不同版本的Java平台来创建在台式计算机,Web浏览器,Web服务器,移动信息设备(例如功能手机)和嵌入式设备(例如电视机顶盒)上运行的Java程序。

Java平台标准版(Java SE):用于开发应用程序的Java平台,这些应用程序是在桌面上运行的独立程序。Java SE还用于开发applet,这些applet是在Web浏览器中运行的程序。

Java平台企业版(Java EE):用于开发面向企业的应用程序和Servlet的Java平台,它们是符合Java EE的Servlet API的服务器程序。Java EE建立在Java SE之上。

Java平台微型版(Java ME): 用于开发MIDlet(是在移动信息设备上运行的程序)和Xlet(是在嵌入式设备上运行的程序)的Java平台。


0

SE(JDK)拥有您需要使用Java的所有库。我推荐Netbeans IDE,因为它直接与Oracle的SE(JDK)捆绑在一起。不要忘记设置“ path”和“ classpath”变量,特别是如果您要尝试命令行的话。对于64位系统,在C:\ Windows \ system32之前插入“系统路径”,例如C:\ Program Files(x86)\ Java \ jdk1.7.0变量;将系统定向到您的JDK。

希望这可以帮助。


0

Java SE用于桌面应用程序和简单的核心功能。Java EE用于桌面,也用于Web开发,网络和高级事物。


0

EE:-企业版:-此Java版本是专门为企业应用程序/业务而设计的,在该应用程序/业务中,我们必须处理许多在安全性,事务管理等方面很重要的不同服务器。

SE:-标准版:-此版本适用于标准应用。

ME:-微型版:-此Java版是专门为手机平台设计的。由于移动设备中的内存资源有限,因此在内存管理方面更加重要。

因此,基本上JAVA针对不同的需求有不同的版本。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.