我对Java框架(我来自.NET)感到困惑。您是否需要不同的服务器设置来运行Java,J2EE和JSP? Java是否在企业和非企业部署的框架中有所区别?豆子?支柱?
有人可以为我理解这个吗?
.NET有:
答案 0 :(得分:9)
这些是与“Java版本”对应的最常用术语:
(后三者通常也写成J2SE,J2EE和J2ME,意思是“Java 2 ___ Edition” - Sun的命名和版本控制惯例相当令人困惑)
请注意,所有这些基本上都是规范,并且有来自不同供应商的实现。例如,您不仅可以从Sun获得J2SE 6 JDK,还可以从IBM和Oracle获得J2SE 6 JDK。
答案 1 :(得分:4)
有几种不同的方式来看待这个。
首先,Java的唯一当前版本是Java 6,目前处于Update 17左右。 Java 5及更早版本都已经过终结。有点令人困惑的是,从版本1.2开始,Java采用了名称“Java 2”(并被称为J2SE或“Java 2 Standard Edition”),因此它是Java 2版本1.2。在Java 2 1.4之后(或更简单的Java 1.4)。虽然J2SE仍然很常见,但1.5版本变成了Java 5或J5SE。
Java的另一个版本是Java Enterprise Edition(“Java EE”),以前的J2EE(“Java 2 Enterprise Edition”),版本6即将发布。 Java EE为服务器应用程序指定了一组标准。最重要的部分是servlet规范,它是99.9%的Java Web框架的基础。它有版本,目前处于版本2.5或2.6(我忘了)。 Apache Tomcat是servlet规范的参考实现。
另一部分是目前在EJB3 / 3.1上的EJB(“Enterprise Java Beans”)。它是一个组件架构,非常重量级。它不像基本servlet规范那样频繁使用。
虽然Tomcat是一个Web容器,但所谓的应用程序服务器提供了完整的Java EE支持。示例包括Glassfish,JBoss,Weblogic和Websphere。
Java类通常打包为JAR(“Java ARchives”),它只是一个具有指定目录结构的压缩文件。
Web应用程序打包为战争(“Web ARchive”),它只是一个具有不同扩展名的jar。 WAR可能包含JAR形式的库。
完整的Java EE应用程序打包到EAR(“Enterprise ARchives”)中,这只是一个不同的文件扩展名,它可能包含war和其他文件。
现在要复杂化的是,有大量的Java Web框架,如Struts,Spring MVC,Tapestry,Wicket以及许多其他框架。
此外,Java Web和企业应用程序使用Spring框架相当普遍。 Spring(imho)是Java服务器端开发的必备工具,因为它简化了许多供应商和库的差异,使您的应用程序更具可插拔性。
困惑了吗?
答案 2 :(得分:1)
有几个版本的JDK(1.4,5,6),就像有几个版本的.NET(1.1,2.0,3.0,3.5)。 J2SE和J2EE实际上只是同一版本的不同包装。 J2EE包含一些不在J2SE中的额外命名空间。
来自wikipedia:
Java平台,企业版或Java EE是用于Java编程语言中的服务器编程的广泛使用的平台。 Java平台(企业版)与Java标准版平台(Java SE)的不同之处在于它添加了库,这些库提供了部署容错,分布式,多层Java软件的功能,主要基于在应用程序服务器上运行的模块化组件
答案 3 :(得分:0)
有one JDK(今天只支持JDK 6)和Java运行时环境(JRE 6)。
通常你只需要JRE,但是有些框架需要tools.jar(即javac)才能运行。
可以检测到server and client modes,Java EE libs来自您使用的应用服务器(或网络服务器)。
答案 4 :(得分:0)
如果要使用Java实现Web应用程序,可以使用Apache或Tomcat作为Web服务器。
要用Java开发,我建议从这里下载NetBeans:
http://netbeans.org/downloads/
我更喜欢NetBeans而不是Eclipse,因为它更像.NET的IDE,这基本上意味着它更有帮助。
使用NetBeans,您可以编写每种类型的Java应用程序,从客户端Java应用程序到servlet,applet等......
答案 5 :(得分:0)
有三个主要的Java平台:
它们都有共同的Java编程语言,但在包含的API和库方面有所不同。
从你的问题我猜你在看Java EE?
虽然可以在Java SE中编写企业应用程序代码,但Java EE是自然的选择,因为它会处理您将要面对的许多事情,并允许您专注于应用程序中有趣且有用的部分。
Java并不能真正区分企业和非企业,事实上,您可以在Java EE中使用Java SE中的API,并且可以在Java SE程序中使用Java EE API。
那么有什么不同呢?基本上,它们都是平台,执行环境。 Java EE比Java SE更适合开发大型项目,因此包括各种服务器和东西来帮助您编写这些大型应用程序。
Beans,Servlets,Apache Tomcat服务器,Glassfish服务器都属于Java EE平台。
答案 6 :(得分:0)
首先,您拥有包含Java SE的standard Java API。您可以将其下载为JRE(仅运行时)或JDK(包括Java编译器等开发人员工具)。
然后你有Java EE,其中包含enterprise Java API。 Java EE实际上是一个抽象 API(几乎只存在接口,抽象类和API契约)。您需要一个具体的实现来获得正在运行的Java EE平台。在JSP / Servlet的情况下,您基本上需要一个servlet容器。常用的是Apache Tomcat和Sun Glassfish(它们捆绑在Sun Java EE下载中)。
当您需要Apache Tomcat时,无需从Sun下载Java EE。只是Java SE就足够了。 Sun Java EE下载基本上包含Glassfish服务器,也可以作为Netbeans IDE的捆绑包(我个人不推荐用于Web开发; Eclipse或IntelliJ是Web开发的更好选择)
假设您想使用Eclipse和Tomcat,然后开始使用Web开发,您基本上需要以下内容:
全力以赴:
eclipse.exe
。/WEB-INF/lib
。那应该是它。您可以在/WebContent
文件夹中创建JSP,并在src
文件夹中创建类(servlet,过滤器,bean,域,实用程序等)。
至于Struts,它与Sun无关。它是基于组件的Apache MVC框架,大致上是Sun JSF的竞争对手。您可以单独下载它,将库放在WEB-INF/lib
中并在项目中使用它。
答案 7 :(得分:0)
实际上java有很多其他版本,但通常我们没有在应用程序中使用它,
列表如下:
JavaSE的 的JavaME JavaEE的 JavaFX的 JavaCard的 JavaDB之外 JavaTV JavaEmbeded
我们在java中可以有4种类型的文件:
Jar(Java档案) 战争(Wep应用程序存档) 耳朵(企业应用档案) Rar(资源适配器归档)
对不起拼写错误,,,,