首先了解一下下面几个概念,讲得不太准确:
1、JVM
JVM是class以及jar(实际上就是很多个class压缩在一起)的运行环境,特征就是java和javaw命令,通过这两个命令,你可以执行class和jar文件。你可以通过-classpath参数指定你需要加载的jar文件
2、JDK
JDK就是JAVA的命令行开发环境,内置了JVM,特征就是javac命令,这个命令允许你将.java源文件批量或者单个编译成.class文件,从而可以通过JVM的java命令执行。在编译时你可以通过-classpath参数指定你的源代码依赖的jar文件。
3、Tomcat等JEE中间件
JEE中间件主要是为了让JAVA程序能够提供http服务、向客户展现html及相关资源而准备的一个运行环境,通常已经包含了JDK(或者像tomcat一样需要配置JDK所在路径).这个运行环境的特征是能够让你部署一个war包,运行环境能够自动加载WEB-INF/classes下的.class文件和WEB-INF/lib下jar文件。当用户通过浏览器访问中间件中你的war包所部署的路径时,中间件能够按照J2EE标准调用你的war包中的class和jsp页面,并将执行结果返回给浏览器。 在这种情况下你只需要将你的.java文件编译好放到WEB-INF/classes目录下。
然后说说纯文本JAVA WEB开发,有这么几种类型:
1、纯文本只有JSP
如果项目中只有jsp页面,就很稀松平常了,你只需要在tomcat的webapps下新建一个目录,然后在里面新建.jsp文件,就可以通过类似于http://localhost:8080/app/a.jsp的方式执行这个jsp文件了。早期的JAVA WEB项目都差不多是这么干的,那时候IDE的用处确实不大。别的技术像ASP和PHP之类十几年了一直是用这种纯文本的方式来编写代码,效率和有IDE没太大差别。
2、除了JSP还有辅助JAVA类
如果除了JSP以外,你还需要一些JAVA类来辅助JSP页面,这时候你必须手工新建.java文件,然后用通过文本编辑器(记事本/vi/UE等)打开他,往里面手工写代码。你将代码写完后,还需要将这个.java文件编译成.class,然后才能放到WEB-INF/classes下执行,
有两种方式完成编译动作:
方式一:JDK+构建工具(ANT或者MAVEN),通过配置ANT调用JDK中的javac命令将你的JAVA代码编译成class并放置到你的WEB-INF/classes目录下
方式二:ANT实际上也是将你的配置转换成javac命令中的各种参数,所以你也可以直接在命令行输出javac,然后javac就会提示你需要提供什么样的参数以及各种参数有什么用途,你可以根据提示自己调用javac编译.java文件成.class文件。
两种方式效率都有点低,所以你还需要有一个.bat(或者.sh)批处理文件来帮助你每隔几十秒就自动编译一下指定目录下的.java文件。
你可能需要写的辅助JAVA类有:
一、全局性的ServletFilter(例如用于用户权限检查)
二、复杂输出的Servlet(jsp不适合用来动态向浏览器提供图片等资源,这时候写Servlet)
三、在JSP中使用的Tag类,以减少JSP中大量的<%%>代码。
这种类不会很多,一般项目能有二三十个就差不多了,所以最初写辅助类的痛苦时期过去以后,开发效率就和使用IDE没什么区别了
3、除了JSP还有大量JAVA类
你的系统比较庞大了,需要一些框架性的东西来进行总体约束,然后在按照框架的要求来编写大量的JAVA类,通过这些JAVA类来完成浏览器端的请求。
这时候你的系统状态已经比较类型与SSH这种形态了,每个页面都会有对应的Action/Controller,以及FormBean/Model,或者还有专门的Service/BL类和DAO类。
这样你的系统中就会有大量的.java文件需要编译成.class,而且要引用的jar数量也显著增加,这时候你作为一个没有IDE的人,痛苦就要来了:
大量的时间花在等待编译上了,无论是使用构建工具的增量编译功能还是自己写一个更强大的批处理文件来扫描改动过的类,每次编译都需要一点时间,并且都不是非常可靠。特别是“减量编译”通常都支持不好,可能会有潜在的错误。
如果每次都使用全部重新编译以得到可靠的编译结果,那么最好的做法是让你每个JAVA类都一次写完一次编译成功,如果多出几个错误或者多修改几次,你会发现编译用的时间就显著大于你写代码的时间。
这种情况下纯文本和IDE的开发效率会有显著的区别。
如果我必须在这种痛苦的纯文本条件下工作,我会先写一个JAVA类,让这个JAVA类单独开一个进程运行,这个进程会自动扫描相应目录下的java文件增/改/删,
然后调用sun.tools.javac.Main类来进行编译,如果只是新增和修改则只单独编译几个类,如果有删除则全部重新编译。
那么Eclipse做了些什么?
1、Eclipse提供了WEB项目工程向导,帮助你快速创建项目
2、Eclipse将你的WEB-INF/lib下的jar文件管理起来,并对其中的class类进行了索引,以便于你快速查看相关类的位置、继承关系、引用关系。
3、Eclipse提供一个完善的增量编译器,所写即所得。Eclipse当年能够胜出的一个重要原因就在他的编译器,Eclipse的JDT实现了自己的编译器(因此Eclipse甚至都不需要JDK,只要有JVM就可以了),能够快速、增量地将你对代码的修改反映到class文件上。这是当时的JBuilder望尘莫及的,当时每次改完类都得重新编译一下,那个痛苦呀,当时我在公司引进Eclipse的时候,两个月之内大家就全部抛弃JBuilder X了(当时花了钱买了正版)。
4、提供了完善的调试功能,基于IDE的调试效率会远高于命令行调试。
5、提供了语法加亮、语法提示、中间件管理等辅助工具。
你说的工具,应该是IDE工具吧,比如eclipse之类的。这样的工具比较笨重一些。
小型项目,使用Ant比较简单。
给你贴一个例子:
1.下载ant包,配置环境变量,PATH指向ant的bin目录
2.建立一个src目录,把你的java源码放进去,比如src/com/test/xxxxx
3.编写一个build.xml和build.properties
build.properties内容:
src=src
build=build
dist=dist
build.xml内容如下
<?xml version="1.0"?>
<project name="MyProject" default="dist" basedir=".">
<description>
simple example build file
</description>
<!-- set global properties for this build -->
<property file="${basedir}/build.properties"/>
<target name="init">
<!-- Create the time stamp -->
<tstamp prefix="date">
<format property="date_stamp" pattern="yyyy-MM-dd" offset="0" unit="month"/>
</tstamp>
<!-- Create the build directory structure used by compile -->
<mkdir dir="${build}"/>
</target>
<target name="compile" depends="init"
description="compile the source " >
<!-- Compile the java code from ${src} into ${build} -->
<javac srcdir="${src}" destdir="${build}"/>
</target>
<target name="dist" depends="compile"
description="generate the distribution" >
<!-- Create the distribution directory -->
<mkdir dir="${dist}/lib"/>
<!-- Put everything in ${build} into the MyProject-20120627.jar file -->
<jar jarfile="${dist}/lib/MyProject-${date.date_stamp}.jar" basedir="${build}"/>
</target>
<target name="clean"
description="clean up" >
<!-- Delete the ${build} and ${dist} directory trees -->
<delete dir="${build}"/>
<delete dir="${dist}"/>
</target>
</project>
4.在命令行下运行ant,jar包就自动打进dist目录了。
上面的东西是jar包打包过程,如果你是web工程,需要打war包,也类似,把build.xml中修改一下,把jar换成war,然后再配置tomcat webapps目录,加一个copy命令,就可以实现自动部署了。
相关推荐
### MyEclipse断点不起作用问题解析 #### 一、问题背景 在使用MyEclipse进行Java开发时,用户可能会遇到这样一个问题:设置的断点无法正常触发,导致无法通过调试来逐步分析程序运行过程中的状态。这种情况不仅会...
### 解决Myeclipse中断点不起作用的方法 在软件开发过程中,使用集成开发环境(IDE)进行代码调试是一项非常重要的工作。Myeclipse作为一款基于Eclipse平台的增强型Java IDE,深受许多开发者喜爱。然而,在使用过程...
汉化包的主要作用是将软件的界面语言转换为中文,包括菜单、对话框、提示信息等所有用户可见的文字。MyEclipse 2014的汉化包通常包含了一系列的语言文件,这些文件对应了MyEclipse中的各种元素,通过替换原有的英文...
首先,我们来理解一下SVN插件的作用。SVN插件使得MyEclipse可以直接与Subversion服务器交互,允许开发者进行版本提交、更新、对比、分支和合并等操作,从而实现对项目代码的有效管理和协同开发。有了这个插件,...
补丁的作用就是修改或规避这个激活过程,使得软件认为你已经拥有有效的许可证,从而实现长期免费使用。然而,需要注意的是,这种行为可能违反了软件的许可协议,并不鼓励在商业环境中使用。 安装MyEclipse 2015 ...
MyEclipse Properties Editor插件是专为MyEclipse集成开发环境设计的一款增强型属性文件编辑器,它极大地提升了开发者在处理.properties配置文件时的效率和体验。MyEclipse作为一款强大的Java EE集成开发工具,其...
密钥的作用主要是用来激活软件的高级功能或者特定版本。对于MyEclipse来说,通过输入正确的密钥,用户可以解锁更多的功能,例如: - 更多的编程语言支持 - 更强大的调试工具 - 更丰富的代码分析工具 - 更便捷的项目...
在某些情况下,汉化包为了提供更个性化的服务,可能需要对MyEclipse的插件配置进行修改,这个文件就起到了关键作用。如果用户对Java编程有一定了解,可以研究此文件以了解更多细节。 再者,"language"文件夹可能是...
在探讨"Myeclipse5.1注册码"这一主题时,我们首先需要理解MyEclipse是什么,以及注册码在软件激活中的作用。MyEclipse是基于Eclipse平台的一个增强版集成开发环境(IDE),专为Java、J2EE、Web、SOA、OSGi和移动应用...
#### 二、MyEclipse注册码的作用 注册码是软件开发商为了保护自己的知识产权而设置的一种机制。通过输入正确的注册码,用户可以解锁软件的所有功能,并获得官方的技术支持和服务。对于MyEclipse而言,注册码主要起...
第十一章至第十五章则深入探讨了MyEclipse在企业级应用开发中的作用。第十一章讲解了如何利用MyEclipse开发Spring、Struts和Hibernate整合应用,展现了MyEclipse在企业级框架集成中的强大支持。第十二章和第十三章...
2. **项目创建**:学习如何在MyEclipse中创建新的Java项目,了解项目结构和各个文件的作用。 3. **代码编辑与调试**:掌握代码编辑器的使用,包括自动完成、代码提示、重构等功能,以及如何设置断点和进行单步调试...
根据提供的文件信息,本文将详细解析与“Myeclipse 7.1 注册码”相关的重要知识点,包括Myeclipse的基本介绍、版本更新、注册码的作用及其获取方式等内容。 ### Myeclipse简介 Myeclipse是基于Eclipse IDE的增强版...
汉化包的主要作用是将MyEclipse 10的工作界面、帮助文档以及各种提示信息翻译成中文,使得中国用户能够更加方便地理解和操作软件。通过安装这个汉化包,开发者可以更快地上手,提高工作效率,减少因语言障碍导致的...
### MyEclipse 使用技巧详解 #### 一、MyEclipse优化加载速度与不必要的设置去除 随着版本升级,MyEclipse的体积不断增大,这不仅增加了下载时间,还对其运行效率产生了影响。对于开发者来说,提高MyEclipse的加载...
在现代软件开发中,集成开发环境(IDE)的作用不容小觑,它能够大幅度提升开发效率和项目的完成速度。MyEclipse在这方面表现尤为突出,它不仅具有基本的代码编写、编译和运行功能,还内嵌了数据库连接、Web服务和...
3. 在文件末尾添加以下内容:“-Duser.language=zh”,这一行代码的作用是强制MyEclipse启动时使用中文界面。 4. 保存并关闭`myeclipse.ini`文件。 ##### 步骤三:重启MyEclipse 1. 完成以上两步后,重启MyEclipse...
### Myeclipse 6.5 安装详细指南 #### 一、概述 本文档将详细介绍 ...Myeclipse 作为一种强大的开发工具,对于提高 Java 开发效率具有重要作用。希望本指南能对你有所帮助,祝你在 Java 开发道路上越走越远!
### 注册码的作用 注册码是软件开发商为了防止软件被非法复制和分发而采取的一种手段。在MyEclipse中,通过输入有效的注册码可以激活软件,使其成为完全功能版。MyEclipse 6.0的注册码通常包含一系列字母和数字组合...
MyEclipse序列号的作用主要在于验证软件的授权状态,确保用户对软件的使用符合许可协议。每个序列号都是独一无二的,与特定的软件版本和用户绑定。激活序列号是安装MyEclipse过程中的重要步骤,只有正确输入有效的...